?? mainfrm.cpp
字號:
// MainFrm.cpp : implementation of the CMainFrame class
//
#include "stdafx.h"
#include "ImageList.h"
#include "MainFrm.h"
#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif
/////////////////////////////////////////////////////////////////////////////
// CMainFrame
IMPLEMENT_DYNCREATE(CMainFrame, CFrameWnd)
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_COMMAND(IDM_IMAGES_INSERTBUTTON, OnImagesInsertbutton)
ON_UPDATE_COMMAND_UI(IDM_IMAGES_INSERTBUTTON, OnUpdateImagesInsertbutton)
ON_UPDATE_COMMAND_UI(ID_FILE_RUNPROGRAM, OnUpdateImagesInsertbutton)
//}}AFX_MSG_MAP
ON_COMMAND(ID_FILE_RUNPROGRAM, OnRunProgram)
END_MESSAGE_MAP()
static UINT indicators[] =
{
ID_SEPARATOR, // status line indicator
ID_INDICATOR_CAPS,
ID_INDICATOR_NUM,
ID_INDICATOR_SCRL,
};
/////////////////////////////////////////////////////////////////////////////
// CMainFrame construction/destruction
CMainFrame::CMainFrame()
{
}
CMainFrame::~CMainFrame()
{
}
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
m_Images.Create (16, 15, ILC_MASK, 9, 5);
LoadImages (&m_Images);
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT, WS_CHILD | WS_VISIBLE | CBRS_TOP
| CBRS_GRIPPER | CBRS_TOOLTIPS | CBRS_FLYBY | CBRS_SIZE_DYNAMIC) ||
// !m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
!m_wndToolBar.LoadToolBar(IDR_TOOLBAR_X))
{
TRACE0("Failed to create toolbar\n");
return -1; // fail to create
}
m_wndToolBar.GetToolBarCtrl().SetImageList (&m_Images);
m_wndToolBar.SetWindowText (_T("Edit"));
m_wndToolBar.GetToolBarCtrl().SetToolTips (&m_wndToolTips);
if (!m_wndStatusBar.Create(this) ||
!m_wndStatusBar.SetIndicators(indicators,
sizeof(indicators)/sizeof(UINT)))
{
TRACE0("Failed to create status bar\n");
return -1; // fail to create
}
// TODO: Delete these three lines if you don't want the toolbar to
// be dockable
m_wndToolBar.EnableDocking(CBRS_ALIGN_ANY);
EnableDocking(CBRS_ALIGN_ANY);
DockControlBar(&m_wndToolBar);
return 0;
}
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
return TRUE;
}
/////////////////////////////////////////////////////////////////////////////
// CMainFrame diagnostics
#ifdef _DEBUG
void CMainFrame::AssertValid() const
{
CFrameWnd::AssertValid();
}
void CMainFrame::Dump(CDumpContext& dc) const
{
CFrameWnd::Dump(dc);
}
#endif //_DEBUG
/////////////////////////////////////////////////////////////////////////////
// CMainFrame message handlers
void CMainFrame::AddToolbarButtons ()
{
UINT uiIndex[] =
{
IDB_FILE_NEW,
IDB_FILE_OPEN,
IDB_FILE_SAVE,
0,
IDB_FILE_CUT,
IDB_FILE_COPY,
IDB_FILE_PASTE,
0,
IDB_FILE_PRINT,
IDB_FILE_PREVIEW,
// 0,
IDB_FILE_HELP
};
TBBUTTON tb;
for (int i = 0; i < (sizeof (uiIndex) / sizeof (UINT)); ++i)
{
tb.idCommand = uiIndex[i];
if (!uiIndex[i])
{
tb.iBitmap = NULL;
tb.fsStyle = TBSTYLE_SEP;
tb.fsState = TBSTATE_INDETERMINATE;
}
else
{
tb.iBitmap = i;
tb.fsState = TBSTATE_ENABLED;
tb.fsStyle = TBSTYLE_BUTTON;
}
tb.dwData = uiIndex[i];
tb.iString = NULL;
m_wndToolBar.GetToolBarCtrl().InsertButton (8, &tb);
}
RecalcLayout ();
}
void CMainFrame::LoadImages(CImageList *Images)
{
int x;
UINT uiIndex[] =
{
IDB_FILE_NEW,
IDB_FILE_OPEN,
IDB_FILE_SAVE,
IDB_FILE_CUT,
IDB_FILE_COPY,
IDB_FILE_PASTE,
IDB_FILE_PRINT,
IDB_FILE_PREVIEW,
IDB_FILE_HELP
};
CBitmap bmp;
// COLORREF clrMask = GetSysColor (COLOR_BTNFACE);
COLORREF clrMask = RGB(255, 0, 255);
for (x = 0; x < (sizeof (uiIndex) / sizeof (UINT)); ++x)
{
bmp.LoadBitmap (MAKEINTRESOURCE(uiIndex[x]));
Images->Add (&bmp, clrMask);
bmp.DeleteObject ();
}
}
void CMainFrame::OnUpdateImagesInsertbutton(CCmdUI* pCmdUI)
{
if (m_wndToolBar.CommandToIndex (ID_FILE_RUNPROGRAM) < 0)
pCmdUI->SetText (_T("Insert Button"));
else
pCmdUI->SetText (_T("Delete Button"));
}
void CMainFrame::OnRunProgram()
{
PROCESS_INFORMATION pi;
STARTUPINFO si;
memset ((char *) &si, '\0', sizeof (STARTUPINFO));
si.cb = sizeof (STARTUPINFO);
CString ProgPath = m_strExecProgram;
CString ProgParam = m_strExecProgram;
CString StartPath = _T(".\\");
BOOL bResult = CreateProcess((LPCTSTR) ProgPath,
(char *) (LPCSTR) ProgParam,
(LPSECURITY_ATTRIBUTES) NULL,
(LPSECURITY_ATTRIBUTES) NULL,
false,
DETACHED_PROCESS,
(LPVOID) NULL,
(LPCTSTR) StartPath,
(LPSTARTUPINFO) &si,
(LPPROCESS_INFORMATION) &pi);
}
void CMainFrame::OnImagesInsertbutton()
{
char szToolTip[_MAX_PATH];
if (m_wndToolBar.CommandToIndex (ID_FILE_RUNPROGRAM) >= 0)
{
m_wndToolBar.GetToolBarCtrl().DeleteButton (8);
m_Images.Remove (9);
RecalcLayout ();
return;
}
CString Filter = _T("Executable files (*.exe)|*.exe||");
CFileDialog fd(true, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT, Filter);
if (fd.DoModal () == IDCANCEL)
return;
HICON hIcon = ExtractIcon (NULL, fd.GetFileName(), 0);
memset (szToolTip, '\0', _MAX_PATH);
sprintf (szToolTip, "Run %s\nRun\0\0", fd.GetFileTitle());
m_strExecProgram = fd.m_ofn.lpstrFile;
m_Images.Add (hIcon);
DeleteObject (hIcon);
TBBUTTON tb;
tb.iBitmap = 9;
tb.idCommand = ID_FILE_RUNPROGRAM;
tb.fsState = TBSTATE_ENABLED;
tb.fsStyle = TBSTYLE_BUTTON;
tb.dwData = 0;
tb.iString = 0;
m_wndToolBar.GetToolBarCtrl().InsertButton (8, &tb);
// LoadString(AfxGetResourceHandle(), ID_FILE_RUNPROGRAM, szToolTip, _MAX_PATH);
// HINSTANCE hInstance, // handle to module containing string resource
// UINT uID, // resource identifier
// LPTSTR lpBuffer, // pointer to buffer for resource
// int nBufferMax // size of buffer);
CToolTipCtrl *tips = m_wndToolBar.GetToolBarCtrl().GetToolTips ();
if (tips != NULL)
{
tips->UpdateTipText (szToolTip, &m_wndToolBar, 8);
}
RecalcLayout ();
}
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -