■■■如何使含有非模式对话框的文档主窗口界面始终保持为选中激活状态???请高人指点迷津

trt 2003-08-23 05:23:15
目前在SDI文档界面中作一个类似浮动的CDialogBar的类,是直接从CWnd派生的,
需要显示一个如Photoshop7.0中工具栏右上角一样的无标题栏的无模式对话框。
现在遇到的问题是只要一选中该对话框,主界面的标题栏就变灰了,如何能避免
这种非预期的结果???please told me。。。
...全文
38 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
fengqinggao 2003-08-23
  • 打赏
  • 举报
回复
不是“实在不行”,是的确如你所说的,很麻烦,还不如从CControlBar派生、重做来得快,而且地道
trt 2003-08-23
  • 打赏
  • 举报
回复
微软自己的文档类程序界面中,主窗体和工具栏都可以始终保持激活状态,总不会也用的是该重绘技术吧?我看了一些例子,然后试了非模式对话框的各种ModifyWindow & ModifyWindowEx, ::SetForeGroundWindow, ::SetActiveWindow, SetWindowPos都没找到管用的。
这好像也是同时激活两个窗体的问题吗?难道只有MDI可以吗?实在不行我重载CControlBAr好了。
trt 2003-08-23
  • 打赏
  • 举报
回复
怎么要这么麻烦呢。。。。。:(
zhouyong0371 2003-08-23
  • 打赏
  • 举报
回复
你的标题栏要自己画成没有变得颜色,网上有很多这样的例子,自己绘成的标题栏,焦点切换后也不会改变。
trt 2003-08-23
  • 打赏
  • 举报
回复
该类问题的完全解决之道:

Docking Toolbars (Part 1)
http://www.catch22.org.uk/tuts/docking1.asp
就是借鉴MFC中浮动工具条的做法。
trt 2003-08-23
  • 打赏
  • 举报
回复
我又翻了翻MSDN和MFC原码,发现微软自己的工具栏在浮动状态(TBS_FLYBY)时,是由一个CMiniDocFrameWnd类将其包裹的,该类有CFrameWnd->CMiniFrameWnd派生,专门就是处理浮动工具条的。在CMiniDocFrameWnd的NC_ONCREATE & NC_ACTIVE中对二者进行同时激活的。

15,979

社区成员

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

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