VC自动隐藏停泊窗体实现-轻松实现类MSDN2002界面(二)(续)

zxy442530465

zxy442530465

2016-02-19 21:45

岁数大了,QQ也不闪了,微信也不响了,电话也不来了,但是图老师依旧坚持为大家推荐最精彩的内容,下面为大家精心准备的VC自动隐藏停泊窗体实现-轻松实现类MSDN2002界面(二)(续),希望大家看完后能赶快学习起来。

  自动隐藏停泊窗体在商业的MFC图形库中(如Xtreme)已支持得很好,但他们大多都重写了MFC相应的支持代码像Cristi Posea的CSizingControlBar实现VC6界面那样,重用大部分MFC Dock 框架类而实现Vc .Net界面的免费库很少见(偶没发现:)本实现,准确地说是在Cuick 的《轻松实现类MSDN2002界面(二)》基础上的增强版。

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

  其主要更新为:

  Bugfixs:

  1.增加定时器 TID_AUTO_HIDE_DELAY 避免出现两个自动隐藏窗口(AHFloatWnds)同时显示的问题.

  2.focus 切换问题(特别是在 自动隐藏窗口(AHFloatwnd) 与 停泊窗体(DockPageBar)之间的切换).

  3.在改变停泊窗体大小时会有的闪烁、颤动.

  4.在改变自动窗体(AHFloatWnd)大小时,尺寸不能超出Mainframe.

  5.static MFC 连接(Release & Debug)的问题(增加STATIC_MFC_LINK 编译选项).

  6.在CDockPageBar::AddPage 函数中检验 pWnd的 style,确保其为 WS_CHILD style,避免由此引发的窗口管理混乱(如把一个WS_POPUP类型的对话框加载到停泊窗).

  Improvements&Newfeatures:

  1.增加自动隐藏窗口( AHFloatWnd) SLIDE_IN/SLIDE_OUT 动画效果(windows API ::AnimateWindow 对于自画窗体好像不行)

  2.增加的新的自动停泊算法,即 精确停泊(as in VC .net), 但是由于停泊窗体的类是从Cristi Posea的CSizingControlBar继承而来, 横向停泊的窗体会优先充满剩余空间的问题依然存在

  3. 重写了 CDockPageBar 类的NcPaint,NcCalClient,OnNcLButtonXXXX,OnNcHitTest 的实现

  把标签和标题栏的重画放到非客户区来做,把原来的绘图效果作了改进

  4.增加对MDI 的支持

  仍有待解决的问题:

  1.横向停泊的窗体会优先充满剩余空间 本文发表于http://bianceng.cn(编程入门网)

  2.如果框架程序中有工具条,且为可停泊的(Dockable),在自动隐藏时行为不是很合理(浮动窗体有可能会将遮住工具条)

 
图一: 多文档框架的停泊窗体

(本文来源于图老师网站,更多请访问https://m.tulaoshi.com/bianchengyuyan/)

图二: 多文档框架的自动隐藏窗体

  使用的方法与《轻松实现类MSDN2002界面(二)》中基本一样

  不同在于对于多文档 CMainframe 是从CDMIAutoHideFrame 继承的.

  例子工程中MDI是vc2003 作的,SDI VC6和vc2003都可用另外,如果你想使用静态MFC 连接,需要加一个编译选项STATIC_MFC_LINK ,否则画出的窗体会比较难看。很希望有人能帮助解决尚存的两个问题

展开更多 50%)
分享

猜你喜欢

VC自动隐藏停泊窗体实现-轻松实现类MSDN2002界面(二)(续)

编程语言 网络编程
VC自动隐藏停泊窗体实现-轻松实现类MSDN2002界面(二)(续)

自动隐藏停泊窗体实现

C语言教程 C语言函数
自动隐藏停泊窗体实现

s8lol主宰符文怎么配

英雄联盟 网络游戏
s8lol主宰符文怎么配

轻松实现类 MSDN 2002 界面(二)

C语言教程 C语言函数
轻松实现类 MSDN 2002 界面(二)

轻松实现类 MSDN 2002 界面

C语言教程 C语言函数
轻松实现类 MSDN 2002 界面

lol偷钱流符文搭配推荐

英雄联盟 网络游戏
lol偷钱流符文搭配推荐

轻松实现类VC界面

C语言教程 C语言函数
轻松实现类VC界面

如何实现窗体的自动隐藏显示功能

编程语言 网络编程
如何实现窗体的自动隐藏显示功能

lolAD刺客新符文搭配推荐

英雄联盟
lolAD刺客新符文搭配推荐

用VB.NET 2005编写定时关机程序

用VB.NET 2005编写定时关机程序

如何在vc++中旋转位图

如何在vc++中旋转位图
下拉加载更多内容 ↓