UPDATE_COMMAND_UI消息具体有什么作用,它由什么引发产生的,例如WM_COMMAND消息可由用户点击下拉菜单的菜单项产生,然后再消息处理函数中通过比对WM_COMMAND附带的菜单ID进行不同的处理,而对于UPDATE_COMMAND_UI消息它是如何产生的,为什么要产生该消息(即产生该消息的具体作用),而举例如ON_UPDATE_COMMAND_UI(ID_MENU1, OnUpdateMenu1)宏中为什么要让ID_MENU1与OnUpdateMenu1相关联,在OnUpdateMenu1响应函数中,如:
void CMainFrame::OnUpdateMenu1(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
}
仅有一个CCmdUI* pCmdUI参数,孙鑫的视频上说当要显示菜单时,操作系统发出WM_INITMENUPOPUP消息,然后由程序的基类如CFrameWnd接管,它会创建一个CCmdUI对象,并与程序的第一个菜单项关联,调用该对象的一个成员函数DoUpdate(),这函数产生CN_UPDATE_COMMAND_UI消息,这条消息带有一个指向CCmdUI对象的指针,而由上面说的CCmdUI对象已经与程序的第一个菜单项关联,那还要在ON_UPDATE_COMMAND_UI宏中:如ON_UPDATE_COMMAND_UI(ID_MENU1, OnUpdateMenu1)中将ID_MENU1(菜单ID)和响应函数OnUpdateMenu1相关联干吗?
void CMainFrame::OnUpdateMenu1(CCmdUI* pCmdUI)
{
// TODO: Add your command update UI handler code here
}
仅有一个CCmdUI* pCmdUI参数,孙鑫的视频上说当要显示菜单时,操作系统发出WM_INITMENUPOPUP消息,然后由程序的基类如CFrameWnd接管,它会创建一个CCmdUI对象,并与程序的第一个菜单项关联,调用该对象的一个成员函数DoUpdate(),这函数产生CN_UPDATE_COMMAND_UI消息,这条消息带有一个指向CCmdUI对象的指针,而由上面说的CCmdUI对象已经与程序的第一个菜单项关联,那还要在ON_UPDATE_COMMAND_UI宏中:如ON_UPDATE_COMMAND_UI(ID_MENU1, OnUpdateMenu1)中将ID_MENU1(菜单ID)和响应函数OnUpdateMenu1相关联干吗?
解决方案 »
- 请教VC中删除文件夹的函数
- 请教WritePrivateProfileString问题
- 高难度BUG定位问题!!
- 两台拨号方式上网后,如何获得对方机器的当前IP地址
- 关于对话框中绘图问题
- 哪位有BMP<->Jpg,Gif,Pcx等的源代码?
- 是不是用windows API编程就不会用到运行时动态识别,(即iskindof())
- 有谁知道如何在windows中直接发送和接受以太网帧(可能是非ip报文),多谢!
- 请教高手一个问题~~~~~~~~~~~~~~~~
- 对于同一HWND,使用GetDC和BeginPaint获取得是同一HDC名柄吗?
- 父类是CObject,就不可以接收信息了?
- 再一次挨踢散分庆祝
你可以修改pCmdUI中的属性来达到菜单的使能、更改菜单标题、样式等操作也就是说应该是在WM_INITMENUPOPUP消息发生后
===================================================
具体怎么关联,关联哪一项是由
ON_UPDATE_COMMAND_UI
决定的。不是由孙鑫决定的。
这里就告诉了框架,菜单项ID_MENU1的更新由函数OnUpdateMenu1负责。