MFC非客户区完美自绘(标题栏,边框,标题按钮)例子,供大家学习

hurryboylqs 2013-10-25 06:34:26
加精
首先上个图吧:



标题栏自绘是很多初学者最苦恼的问题,目前网上的例子要么是系统默认的标题按钮时不时的会重现出来,要么是影响了窗口非客户区原来默认的行为(去掉系统菜单)等等,各种的不如意,于是本人研究试验了下,感觉这个是比较完美的了,不影响任何原来窗口的特性,比如标题栏系统菜单等,要么是把非客户区去掉了,然后自己模拟,笔者也有这样处理过,不过这里只演示非客户区标题栏绘制的例子,代码简单易学,代码是用VS2008+SP1开发的,特发此贴以飨读者,如果有什么问题可以在本贴回复。

源码下载地址:
http://download.csdn.net/detail/hurryboylqs/6454285
...全文
22526 94 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
94 条回复
切换为时间正序
请发表友善的回复…
发表回复
qq_33940679 2016-02-06
  • 打赏
  • 举报
回复
谢谢LZ分享!
Yaphet_S 2015-09-02
  • 打赏
  • 举报
回复
为什么做成基于单文档的而不是基于对话框的
877385981 2015-08-08
  • 打赏
  • 举报
回复
学习一下学习一下学习一下
忆青春惜年华 2015-07-30
  • 打赏
  • 举报
回复
学习一下学习一下学习一下
wsnjcxq 2015-06-12
  • 打赏
  • 举报
回复
引用 38 楼 hemmingway 的回复:
既然用到 MFC扩展库,还不如这样直接的裁减掉边框,完全字画标题栏。
求代码喵
hexuyangguang 2014-11-10
  • 打赏
  • 举报
回复
非常不错,学习了啊!
smallcat1025 2014-08-20
  • 打赏
  • 举报
回复

为什么我的没有按钮效果呢 只有文字
  • 打赏
  • 举报
回复
用惯了CBuild,第一次用MFC做窗体,刚把公司游戏微端框架弄出来了,我是用的完全去掉标题栏,然后自绘制客户区的方式模拟的,得自己处理各种拖拽、缩放,各种蛋碎查资料, 才看到这篇,Mark一下。
rundll64 2014-04-26
  • 打赏
  • 举报
回复
虽然在编译过程中有41个警告 不过能运行,好帖
ANvDbg-Capital 2014-04-26
  • 打赏
  • 举报
回复
Mark,好帖,学习了。
Jackxan 2014-04-24
  • 打赏
  • 举报
回复

win7下 vs2010 出来这个效果。。。原来的标题栏还在。。
阿古古 2014-04-23
  • 打赏
  • 举报
回复
学习学习。。。
szcqxy 2014-04-15
  • 打赏
  • 举报
回复
貌似边框没有阴影效果了?
jhljhljhlooo 2014-04-04
  • 打赏
  • 举报
回复
现在回复还会有人回应么。。。楼主你的代码用了后最大话会超出屏幕范围,弄了好久也没完美成功,不知如何解决?
Jackxan 2014-03-21
  • 打赏
  • 举报
回复
太感谢楼主了 我正为这个犯愁呢
aoa112 2014-02-25
  • 打赏
  • 举报
回复
先拿来学习再说
小草不无敌 2013-12-24
  • 打赏
  • 举报
回复
楼主,我有个很严重的问题,处理了很久依旧解决不了。 1. MFC 使用 Dialog建立工程,然后在WM_SHOWWINODW对应响应函数onShowWindow中(已经对你的attach进行修改,增加sendMessage WM_SIZE,改变整个dialog大小,所以得放在OnInitDalog后,不过这个跟我的问题没关系)进行skinWndHelper.attach(m_hwnd) 2. 出现的问题是:程序运行时第一次鼠标移动到标题栏时触发WM_SETCURSOR消息后系统默认标题栏会出现 3. 如果WINDOWStyle里面有设置MAXBTN和MINBTN属性则在第2点中出现的系统默认标题栏同样会出现在最大化后第一次移动到标题栏触发WM_SETCURSOR以及还原後出现。 出现的条件是:Windows 系统风格为 windows经典风格,XP和Win7都会出现, mfc使用dialog(Document view 不会出现这个问题)。 chrome 老一点的版本(26.0)也能发现这个问题。 补充,以下刚才的问题。 尝试过滤WM_SETCURSOR消息,让Dialog对应的HWnd默认函数处理后再做一次NCPaint,但效果还是不好,还是会闪以下系统默认标题栏。而且觉得这样做也不好,消耗资源。 WM_SETCURSOR消息绘制系统默认标题栏是我单步调试后定位出来的。但我也不清楚默认的Dialog中该消息对应函数具体处理内容,想直接重写也不知道怎么写。 强烈求楼主解答
向立天 2013-12-14
  • 打赏
  • 举报
回复
您好 我是本版版主 此帖已多日无人关注 请您及时结帖 如您认为问题没有解决可按无满意结帖处理 另外本版设置了疑难问题汇总帖 并已在版面置顶 相关规定其帖子中有说明 您可以根据规定提交您帖子的链接 如您目前不想结帖只需回帖说明 我们会删除此结帖通知 见此回复三日内无回应 我们将强制结帖 相关规定详见界面界面版关于版主结帖工作的具体办法
极客柴鹿 2013-11-13
  • 打赏
  • 举报
回复
效果不错的哦,新手表示大部分不是很懂,研究ing...
林小鸢 2013-11-13
  • 打赏
  • 举报
回复
研究ing、、、
加载更多回复(66)

15,980

社区成员

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

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