0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

ON_UPDATE_COMMAND_UI_RANGE

Last updated at Posted at 2017-04-12

定数の定義

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;
	}
}
0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?