MFC程序员的WTL指南(4)工具条与状态条
2006-07-22 22:03:37 来源:WEB开发网核心提示: 工具条编辑器正如我们前面所见,向导为我们的程序创建了几个默认的按钮,MFC程序员的WTL指南(4)工具条与状态条(6),当然只有About按钮有事件处理,你可以像在MFC的工程中一样使用工具条编辑器修改工具条资源,使它们能够反映工具条或状态条当前的状态,工具条按钮的UI状态更新向导生成的代
工具条编辑器
正如我们前面所见,向导为我们的程序创建了几个默认的按钮,当然只有About按钮有事件处理。你可以像在MFC的工程中一样使用工具条编辑器修改工具条资源,CreateSimpleToolBarCtrl()用这个工具条资源创建工具条。下面是向导生成的工具条在编辑器中的样子:
对于我们的时钟程序,我们添加四个按钮,两个按钮用来改变视图窗口的颜色,另外两个用来显示/隐藏工具条和状态条。下面是我们的新工具条:
这些按钮是:
- IDC_CP_COLORS: 将视图窗口颜色改为CodeProject网站的颜色
- IDC_BW_COLORS: 将视图窗口颜色改为黑白颜色
- ID_VIEW_STATUS_BAR: 显示或隐藏状态条
- ID_VIEW_TOOLBAR: 显示或隐藏工具条
前两个按钮都有相应的菜单项,它们都调用视图类的一个新函数SetColor(),向这个函数传递前景颜色和背景颜色,视图窗口用这两个参数改变窗口的显示。响应这两个按钮的处理函数与响应相应的菜单项的处理函数在使用COMMAND_ID_HANDLER_EX宏上没有区别,你可以查看例子工程的代码了解这些消息处理的细节。在下一节我将介绍状态条和工具条按钮的UI状态更新,使它们能够反映工具条或状态条当前的状态。
工具条按钮的UI状态更新
向导生成的代码已经为CMainFrame添加了对View|Toolbar和View|Status Bar两个菜单项的Check和Uncheck的UI更新处理。这和第二章的程序一样:对CMainFrame类的两个命令使用UI更新的宏:
BEGIN_UPDATE_UI_MAP(CMainFrame)
UPDATE_ELEMENT(ID_VIEW_TOOLBAR, UPDUI_MENUPOPUP)
UPDATE_ELEMENT(ID_VIEW_STATUS_BAR, UPDUI_MENUPOPUP)
END_UPDATE_UI_MAP()
我们的时钟程序的工具条按钮与对应的菜单项有相同的ID,所以第一步就是为每个宏添加UPDUI_TOOLBAR标志:
更多精彩
赞助商链接