BEGIN_MESSAGE_MAP(CAD360112Dialog, CDialog)
//{{AFX_MSG_MAP(CAD360112Dialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
…
ON_COMMAND(IDM_START_SAMPLING, OnStartProcess) //メニューからの呼び出し
ON_BN_CLICKED(IDC_BTN_SAMPLING, OnStartProcess) //ボタンからの呼び出し
…
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void C…Dialog::OnStartProcess()
{
…
}
BEGIN_MESSAGE_MAP(CAD360112Dialog, CDialog)
//{{AFX_MSG_MAP(CAD360112Dialog)
ON_WM_PAINT()
ON_WM_QUERYDRAGICON()
…
ON_COMMAND(IDM_END, OnEndProc)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
void CAD360112Dialog::OnEndProc()
{
PostMessage(WM_CLOSE);
}
// 生成されたメッセージ マップ関数
//{{AFX_MSG(CAD360112Dialog)
virtual BOOL OnInitDialog();
afx_msg void OnPaint();
afx_msg HCURSOR OnQueryDragIcon();
…
afx_msg void OnEndProc();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
◆DDX変数を配列にした場合など、ClassWizardを使わずに手で設定する場合。
CCmdUI cmdUI;
cmdUI.m_pMenu = pPopupMenu;
cmdUI.m_nIndexMax = pPopupMenu->GetMenuItemCount();
for(cmdUI.m_nIndex=0; cmdUI.m_nIndex < pPopupMenu->GetMenuItemCount(); cmdUI.m_nIndex++){
if (!(cmdUI.m_nID = pPopupMenu->GetMenuItemID(cmdUI.m_nIndex)))
continue;
else if (cmdUI.m_nID == (UINT)-1) {
cmdUI.m_pSubMenu = pPopupMenu->GetSubMenu(cmdUI.m_nIndex);
if (!cmdUI.m_pSubMenu || !(cmdUI.m_nID = cmdUI.m_pSubMenu->GetMenuItemID(0)) || (cmdUI.m_nID == (UINT)-1))
continue;
cmdUI.DoUpdate(this, FALSE);
}else{
cmdUI.m_pSubMenu = NULL;
cmdUI.DoUpdate(this, cmdUI.m_nID<0xF000);
}
}
void CXXXXXDlg::OnUpdateMXXXXXX(CCmdUI* pCmdUI)
{
if( … ){
pCmdUI->SetText("メニュー項目名1");
pCmdUI->SetCheck(1); //チェックをつける
pCmdUI->Enable(TRUE); //有効
}else{
pCmdUI->SetText("メニュー項目名2");
pCmdUI->SetCheck(0); //チェックをはずす
pCmdUI->Enable(FALSE); //無効
}
}
void CXxxFrame::OnContextMenu(CWnd* pWnd, CPoint point)
{
CMenu menu;
menu.LoadMenu(IDR_MENU1); // IDR_MENU1はResourceViewで追加したメニュー
menu.GetSubMenu(0)->TrackPopupMenu(TPM_LEFTALIGN | TPM_RIGHTBUTTON, point.x, point.y, this);
}
void CXxxView::OnMenuitem…()
{
// TODO: この位置にコマンド ハンドラ用のコードを追加してください
…
}
void CXXXXXDlg::OnMenuHelp( ) //ヘルプメニュークリック時
{
AfxGetApp()->WinHelp(0, HELP_FINDER);
}