■■■使含有若干CWnd/Modeless Dialog的文档主窗口界面与子窗体始终保持同步激活状态的解决方案

trt 2003-08-23 02:25:33
■■■使含有若干CWnd/Modeless Dialog的文档主窗口界面与子窗体始终保持同步激活状态的解决方案

目前在SDI文档界面中作一个类似浮动的CDialogBar/CToolBar的类,是直接从CWnd派生的,
需要显示一个如MFC中CControlBar类的浮动的无模式对话框。
但遇到的问题是只要一选中该对话框,主界面的标题栏就变灰了,如何能避免
这种非预期的结果?

微软自己的文档类程序界面中,主窗体和工具栏都可以始终保持激活状态。我又翻了翻MSDN和MFC原码,发现微软自己的工具栏在浮动状态(TBS_FLYBY)时,是由一个CMiniDocFrameWnd类将其包裹的,该类有CFrameWnd->CMiniFrameWnd派生,专门就是处理浮动工具条的。在CMiniDocFrameWnd的NC_ONCREATE & NC_ACTIVE中对二者进行同时激活的。

最后,该类问题的完全解决之道:

Docking Toolbars (Part 1)
http://www.catch22.org.uk/tuts/docking1.asp
就是借鉴MFC中浮动工具条的做法,处理这类消息并向相关窗体发送。
...全文
93 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧