システムメニューに独自のメニューを追加して,そのメニューが選択された処理を実行するサンプルコード.
*** MainFrame.cpp ***
BEGIN_MESSAGE_MAP(CMainFrame, CFrameWnd)
//{{AFX_MSG_MAP(CMainFrame)
ON_WM_CREATE()
ON_WM_SYSCOMMAND()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
CMenu* pMenu = GetSystemMenu( FALSE );
int i;
for( i = 0; i < 6; i++ ) {
pMenu->DeleteMenu( 0, MF_BYPOSITION );
}
pMenu->AppendMenu( MF_SEPARATOR );
pMenu->AppendMenu( MF_ENABLED | MF_STRING, ID_ADD_SMENU, "ADDMENU" );
}
void CMainFrame::OnSysCommand( UINT nID, LPARAM lParam )
{
if( nID == ID_ADD_SMENU ) {
MessageBox( "ADDMENU Proc");
}
CFrameWnd::OnSysCommand( nID, lParam );
}
*** mainframe.h ***
afx_msg void OnSysCommand( UINT nID, LPARAM lParam );
*** resource.h ***
#define ID_ADD_SMENU 61204
参照
メニュー項目動的追加