C++实例 菜单操作2 ON_UPDATE_COMMAND_UI
2013-03-12 17:45
393 查看
#include <afxwin.h> #include "COMMAND_UI.h" //载入资源文件所使用之标头文件 class MyFrame : public CFrameWnd { private: COLORREF color; public: MyFrame() //建构符 { Create(NULL, //产生标准视窗 "COMMAND_UI", //视窗标题 WS_OVERLAPPEDWINDOW|WS_VISIBLE, //视窗样式 rectDefault, //视窗大小 NULL, //指向父视窗的指针 MAKEINTRESOURCE(IDR_MENU), //菜单栏 WS_EX_ACCEPTFILES //接受拖放(容器的扩展属性) ); //使用选单的识别符 color = RGB(255,0,0); //将点的颜色预设为红色 } afx_msg void OnRed() //当Color Menu中Red选项被选取时 { color = RGB(255,0,0); } //设定画在画布上的颜色 afx_msg void OnGreen() //当Color Menu中Green选项被选取时 { color = RGB(0,255,0); } afx_msg void OnBlue() //当Color Menu中Blue选项被选取时 { color = RGB(0,0,255); } //处理ON_UPDATE_COMMAND_UI讯息的函数 afx_msg void OnUpdateRed(CCmdUI * aCmdUI) { //aCmdUI为指向Red选项的控件指针 aCmdUI->SetCheck(color == RGB(255,0,0)); //将aCmdUI控件打勾 } afx_msg void OnUpdateGreen(CCmdUI * aCmdUI) { aCmdUI->SetCheck(color == RGB(0,255,0)); } //用color作为开关语句 控制勾选的状态 afx_msg void OnUpdateBlue(CCmdUI * aCmdUI) { aCmdUI->SetCheck(color == RGB(0,0,255)); } afx_msg void OnLButtonUp(UINT nFlags, CPoint point) { ReleaseCapture(); }//当鼠标左键放开后的回应函数,释放鼠标讯息接收权 afx_msg void OnLButtonDown(UINT nFlags, CPoint point) { SetCapture(); } //当鼠标左键按下后的回应函数,取得鼠标讯息接收权 afx_msg void OnMouseMove(UINT nFlags, CPoint point) { //当鼠标移动时的回应函数 if (this == GetCapture()) //判断鼠标光标是否在视窗之上 { CClientDC aDC(this); //建立一个画布 aDC.SetPixel(point, color); //在画布上画出颜色为color的点 } } DECLARE_MESSAGE_MAP() //声明讯息映射表 }; //建立MyFrame类别的讯息映射表 BEGIN_MESSAGE_MAP(MyFrame, CFrameWnd) //回应UPDATE_COMMAND_UI讯息 ON_UPDATE_COMMAND_UI(IDM_Red, OnUpdateRed) //ON_UPDATE_COMMAND_UI消息先于ON_COMMAND执行 ON_UPDATE_COMMAND_UI(IDM_Green, OnUpdateGreen) ON_UPDATE_COMMAND_UI(IDM_Blue, OnUpdateBlue) ON_COMMAND(IDM_Red, OnRed) ON_COMMAND(IDM_Green, OnGreen) ON_COMMAND(IDM_Blue, OnBlue) //回应鼠标讯息 ON_WM_LBUTTONDOWN() ON_WM_MOUSEMOVE() ON_WM_LBUTTONUP() END_MESSAGE_MAP() class MyApp : public CWinApp //应用程序类别 { public: BOOL InitInstance() //程序进入点 { CFrameWnd *Frame = new MyFrame; m_pMainWnd = Frame; Frame->ShowWindow(SW_SHOW); //显示视窗 return true; } } a_app; //声明应用程序控件
相关文章推荐
- 对话框中使用ON_UPDATE_COMMAND_UI更新菜单(转载)
- 对话框的菜单 ON_UPDATE_COMMAND_UI
- 在对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 对工具条和菜单添加ON_UPDATE_COMMAND_UI映射
- 在对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 对话框中使用ON_UPDATE_COMMAND_UI更新菜单(转)
- 在MFC对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 【VC++】在对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 对话框添加 ON_UPDATE_COMMAND_UI 更新菜单和工具栏
- 基于对话框程序用ON_UPDATE_COMMAND_UI更新菜单
- 在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条(toolbar和菜单(menu)的心得
- 对话框中使用ON_UPDATE_COMMAND_UI更新菜单状态
- 使基于对话框的菜单能够使用ON_UPDATE_COMMAND_UI更新菜单
- 在MFC对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 在对话框里面使用ON_UPDATE_COMMAND_UI映射工具条/菜单
- 对话框的菜单 ON_UPDATE_COMMAND_UI
- 在对话框中使用ON_UPDATE_COMMAND_UI更新菜单
- 关于模态/非模态对话框不响应菜单的UPDATE_COMMAND_UI消息
- 菜单响应函数:ON_COMMAND和ON_UPDATE_COMMAND_UI,ON_COMMAND_RANGE和ON_UPDATE_COMMAND_UI_RANGE
- VC++中的ON_COMMAND_RANGE宏和ON_UPDATE_COMMAND_UI_RANGE宏