定数の定義
test.cpp
# define ID_TEST1 30001
# define ID_TEST2 30002
# define ID_TEST3 30003
# define ID_TEST4 30004
# define ID_TEST5 30005
メッセージマップ
test.cpp
BEGIN_MESSAGE_MAP(COnUpdateCommandUiRangeDlg, CDialogEx)
ON_BN_CLICKED(IDC_BUTTON1, &COnUpdateCommandUiRangeDlg::OnBnClickedButton1)
ON_COMMAND_RANGE(ID_TEST1, ID_TEST5, &COnUpdateCommandUiRangeDlg::OnCommandRange)
ON_UPDATE_COMMAND_UI_RANGE(ID_TEST1, ID_TEST5, &COnUpdateCommandUiRangeDlg::OnUpdateCommandUiRange)
END_MESSAGE_MAP()
宣言
test.h
afx_msg void OnCommandRange(UINT nID);
afx_msg void OnUpdateCommandUiRange(CCmdUI* pCmdUI);
メッセージの送信
test.cpp
void COnUpdateCommandUiRangeDlg::OnBnClickedButton1()
{
SendMessage(WM_COMMAND, ID_TEST1);
}
メッセージの処理
1回のSendMessageでON_COMMAND_RANGEとON_UPDATE_COMMAND_UI_RANGEの2回処理される
test.cpp
void COnUpdateCommandUiRangeDlg::OnCommandRange(UINT nID)
{
switch (nID)
{
case ID_TEST1:
MessageBox(_T("OnCommandRange_ID_TEST1"), _T(""));
break;
}
}
void COnUpdateCommandUiRangeDlg::OnUpdateCommandUiRange(CCmdUI* pCmdUI)
{
switch (pCmdUI->m_nID)
{
case ID_TEST1:
MessageBox(_T("OnUpdateCommandUiRange_ID_TEST1"), _T(""));
break;
}
}