您的位置:软件 > 开发者网络 > 开发工具 > 开发专栏 > VC > 正文
MFC程序员的WTL指南之工具条与状态条
[文章信息]
作者:lithe
时间:2005-02-03
出处:csdnblog
责任编辑:方舟
[文章导读]
自从作为Windows 95的通用控件出现以来,工具条和状态条就变成了很普遍的事物
advertisement
热点推荐
· “金闪客”技术开发奖:砖头文快跑
· “金闪客”最佳配音奖:大话李白(一)
· 初试WMP10音乐同步功能
· 2月2日软件精选 WindowsXP系统全面软优化
· 首届“金闪客奖”获奖作品欣赏
[正文]

上一页  1 2 3 4  下一页

  显示和隐藏工具条和状态条

  CMainFrame类也有一个视图菜单,它有两个命令:显示/隐藏工具条和状态条,它们的ID是ID_VIEW_TOOLBAR和ID_VIEW_STATUS_BAR。 CMainFrame类有这两个命令的响应函数,分别显示和隐藏相应的控制条,下面是OnViewToolBar()函数的代码:

LRESULT CMainFrame::OnViewToolBar(WORD /*wNotifyCode*/, WORD /*wID*/,
HWND /*hWndCtl*/, BOOL& /*bHandled*/)
{
 BOOL bVisible = !::IsWindowVisible(m_hWndToolBar);
 ::ShowWindow(m_hWndToolBar, bVisible ? SW_SHOWNOACTIVATE : SW_HIDE);
 UISetCheck(ID_VIEW_TOOLBAR, bVisible);
 UpdateLayout();
 return 0;
}

  这些代码翻转控制条的显示状态,相应的翻转View|Toolbar菜单上的检查标记,然后调用UpdateLayout()重新定位控制条并改变视图窗口的大小。

  工具条和状态条的内在特征

  MFC的框架提供了很多好的特性,例如工具条按钮的工具提示和菜单项的掠过式帮助。WTL中相对应的功能实现在CFrameWindowImpl类中。下面的屏幕截图显示了工具提示和掠过式帮助。


  CFrameWindowImplBase类有两个消息相应函数用来实现这些功能,OnMenuSelect()处理WM_MENUSELECT消息,它像MFC那样查找掠过式帮助的字符串:首先装载与菜单资源ID相同的字符串资源,在字符串中查找 \n 字符,使用\n之前的内容作为掠过帮助的内容。OnToolTipTextA() 和 OnToolTipTextW() 函数分别响应 TTN_GETDISPINFOA消息和TTN_GETDISPINFOW消息,提供工具条按钮的工具提示。这两个处理函数和OnMenuSelect()函数一样装载相应的字符串,只是使用\n后面的字符串。(边注:OnMenuSelect()和OnToolTipTextA()函数对于DBCS字符是不安全的,因为它在查找\n字符时没有检查DBCS字符串的头部和尾部)下面是工具条及其关联的帮助字符串的例子:


  创建不同样式的工具条

  如果你不喜欢在工具条上显示3D按钮(尽管从可用性观点来看平面的界面元素是件糟糕的事情),你可以通过改变CreateSimpleToolBar()函数的参数来改变工具条的样式。例如,你可以在CMainFrame::OnCreate()使用如下代码创建一个IE风格的工具条:

CreateSimpleToolBar ( 0, ATL_SIMPLE_TOOLBAR_STYLE |
TBSTYLE_FLAT | TBSTYLE_LIST );

  如果你使用向导为你的程序添加了manifest文件,它就会在Windows XP系统上使用6.0版的通用控件,你不能选择按钮的类型,工具条会自动使用平面按钮即使你创建工具条时没有添加TBSTYLE_FLAT风格。

  工具条编辑器

  正如我们前面所见,向导为我们的程序创建了几个默认的按钮,当然只有About按钮有事件处理。你可以像在MFC的工程中一样使用工具条编辑器修改工具条资源,CreateSimpleToolBarCtrl()用这个工具条资源创建工具条。下面是向导生成的工具条在编辑器中的样子:


  对于我们的时钟程序,我们添加四个按钮,两个按钮用来改变视图窗口的颜色,另外两个用来显示/隐藏工具条和状态条。下面是我们的新工具条:


  这些按钮是:

  ·IDC_CP_COLORS: 将视图窗口颜色改为CodeProject网站的颜色
  ·IDC_BW_COLORS: 将视图窗口颜色改为黑白颜色
  ·ID_VIEW_STATUS_BAR: 显示或隐藏状态条
  ·ID_VIEW_TOOLBAR: 显示或隐藏工具条

  前两个按钮都有相应的菜单项,它们都调用视图类的一个新函数SetColor(),向这个函数传递前景颜色和背景颜色,视图窗口用这两个参数改变窗口的显示。响应这两个按钮的处理函数与响应相应的菜单项的处理函数在使用COMMAND_ID_HANDLER_EX宏上没有区别,你可以查看例子工程的代码了解这些消息处理的细节。在下一节我将介绍状态条和工具条按钮的UI状态更新,使它们能够反映工具条或状态条当前的状态。


上一页  1 2 3 4  下一页

发表评论推荐给朋友我想参加相关培训打印我对此感兴趣订阅电子杂志
相关内容焦点新闻
  • Visual C++初学者指针学习指南
  • 使用VC++ ATL实现Office的COM插件
  • VC中利用FTP协议实现多线程断点续传
  • 防止Visual C++应用程序缓冲区溢出
  • MFC程序员的WTL指南之WTL 界面基类
  • 迅驰一代清仓 笔记本电脑已卖出台式机价格
  • 信产部回应今典诉讼说 标准出台不可能太快
  • 上海率先升级银联卡芯片 总成本395亿人民币
  • 贴牌手机厂核准制前夜忙扩资 新牌照有门槛
  • 易趣推新平台淘宝全额赔付 网上交易有安全栓
  • 微软将提供免费的杀毒软件 嵌入XP操作系统
  • 恶意输血系内企业 托普科技董事长辞任
  • 160亿美元合并AT&T 西南贝尔将裁员1.3万
  • Advertisement