.oncommand是响应wm_command消息的,一般是响应控件和菜单的命令消息时使用。
如果 wm_command 来自控件的话 lparam 就是发送这个 wm_command 消息的控件的句柄,否则为 0 。
使用
既然知道 wparam 的低位表示菜单项、控件、或者快捷键的 id 值,那么我们在响应按钮点击时,可以不用逐个编写按钮消息映射及消息响应函数,而直接在 oncommand 内处理:
bool cdlgtest::oncommand(wparam wparam, lparam lparam)
{
switch(loword(wparam))//wparam的低字是控件id,lparam是发送这个wm_command消息的控件的句柄。
case idc_btn_begin:
afxmessagebox(_t("开始"));
break;
}
case idc_btn_end:
afxmessagebox(_t("结束"));
return cdialog::oncommand(wparam, lparam);