WEB开发网
开发学院软件开发VC 增加状态栏按钮及其它 阅读

增加状态栏按钮及其它

 2008-01-19 20:25:10 来源:WEB开发网   
核心提示:那如果你又需要这个大小拖拉把手呢?在这种情况下,我认为最简单的方法是实现一个有两个子状态栏的组合状态栏,增加状态栏按钮及其它(4),任意一个都在你的按钮或是随便什么其它控件的左边或是右边,然后,顾问和 Web/UI 方面资深的设计师,他是 Windows++: Writing Reusable Windows Code

那如果你又需要这个大小拖拉把手呢?在这种情况下,我认为最简单的方法是实现一个有两个子状态栏的组合状态栏,任意一个都在你的按钮或是随便什么其它控件的左边或是右边。然后,在左边的那个子状态栏没有拖拉把手,而右边的那个子状态栏只剩下拖拉把手。老实说,如果你把状态栏作为其 它什么新窗口的子窗口,而不是主框架的子窗口,我怀疑它是否能正常工作;你可能必须自己重新跟踪消息循环并改写父窗口。如果,你真得在家这么做了,请让我知道。

还有一个细节是必须要做的,否则事情就不完美,如果用户隐藏了状态栏,会导致什么?没错!正如你预料,按钮还是会在。为了让按钮随状态栏一同隐藏,你必须在 ID_VIEW_STATUS_BAR 的处理函数中增加一些代码,Figure 3 显示了 具体处理细节。

如果你真的想去跟踪一个组合状态栏,你必须先把状态栏,按钮和其它一些控件作为一个新的窗口类的子窗口,并在处理OnSize 消息时,将他们放在正确的位置上。而对于主框架来讲,重 新计算窗口位置是 MFC 的一项特权。如果你的按钮或是其它的什么控件比状态栏窗口小的话,你必须写一点代码在你的组合状态栏中,使得子窗口中间的空白被重画。你可以在处理WM_ERASEBKGND 做这项工作,或者在注册你的窗口类时,简单的把背景刷子设置成合适的系统颜色(例如:COLOR_3DFACE)。最后,你还得重载 OnCmdMsg 消息函数,使得消息能够发往父窗口。

使用 cppqa@microsoft.com 发送你的问题和评论给 Paul

作者简介

Paul DiLascia 是一个自由作家,顾问和 Web/UI 方面资深的设计师。他是 Windows++: Writing Reusable Windows Code in C++ (Addison-Wesley, 1992)一书的作者。你可以在 http://www.dilascia.com 网站和 Paul 联系上。

上一页  1 2 3 4 

Tags:增加 状态 按钮

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接