我在自绘标题栏的时候,为什么系统自带的最大、最小、关闭按钮总是跑出来啊?

quantity 2008-12-30 09:18:26
我重载了OnNcPaint()、OnNcActivate()、OnNcHitTest、OnNcLButtonDown以及OnNcLButtonUp等消息处理方法,其他基本上没有问题了,但有时候系统自带的最大、最小、关闭按钮还是会跑出来,我不知道怎么回事,快被它搞疯了。是不是我还有什么消息没有处理到吗?请高手示下!
...全文
200 19 打赏 收藏 转发到动态 举报
写回复
用AI写文章
19 条回复
切换为时间正序
请发表友善的回复…
发表回复
会思考的草 2009-03-10
  • 打赏
  • 举报
回复
创建窗口时,将WM_SYSCOMMAND拿掉。
用CDC::DrawFrameControl自己画你需要的按钮。
quantity 2009-03-10
  • 打赏
  • 举报
回复
居然没结贴,不好意思。
后来我是这样做的:生成无边框窗口(设置窗口style为WS_POPUP),这样那些乱七八糟的标题栏啊、菜单啊都没有了,整个窗口的区域都是客户区,然后我在客户区中分出一块来模拟非客户区,自己处理各种鼠标消息。
whgyyx 2009-01-04
  • 打赏
  • 举报
回复
对话框右键---Properties---Diglog Properties---Style---Border---None
awperpvip 2009-01-02
  • 打赏
  • 举报
回复
study~
harry330 2009-01-02
  • 打赏
  • 举报
回复
[Quote=引用 10 楼 ljfblog 的回复:]
我也找了好长时间,这样解决:
在WindowProc中加入:

C/C++ code
if(message == 0x00AE|| //:WM_NCUAHDRAWCAPTION
message == 0x00AF)//:WM_NCUAHDRAWFRAME
{
return WM_NCPAINT;
}


参考:http://hi.baidu.com/ljfblog/blog/item/09a33edd06ac54da8d102914.html
[/Quote]
正解
zhaiweihua 2009-01-02
  • 打赏
  • 举报
回复
去掉TITLE BAR 自己处理标题栏的那些消息。最大化等这些按钮以及窗口的拖动等 在OnNcHitTest中处理返回值吧
hurryboylqs 2009-01-02
  • 打赏
  • 举报
回复
我一般是把边框和标题去掉,然后留出一部分客户区作为模拟非客户区,自己绘制那几个小按钮,但作为更通用的方法,个人觉得还是不要去掉默认的,不知道大家一般是怎么绘制的,网上的方法倒是讲的一堆,但真正做的很满意的不是很多,楼主可以看下一些开源的界面库,里面会有相应的代码,我不是专门做界面的,所以也没怎么深究,其实关键的一点是相应那些消息
yc_8301 2009-01-02
  • 打赏
  • 举报
回复
学习了。。
以前只是 直接去掉他,之后自己使用button画....
hurryboylqs 2009-01-02
  • 打赏
  • 举报
回复
mark
ljfblog 2009-01-01
  • 打赏
  • 举报
回复
我也找了好长时间,这样解决:
在WindowProc中加入:

if(message == 0x00AE|| //:WM_NCUAHDRAWCAPTION
message == 0x00AF)//:WM_NCUAHDRAWFRAME
{
return WM_NCPAINT;
}

参考:http://hi.baidu.com/ljfblog/blog/item/09a33edd06ac54da8d102914.html
路人乙2019 2008-12-30
  • 打赏
  • 举报
回复
WS_MAXIMIZE和WS_MINIMIZE这些style应该要去掉的吧。
quantity 2008-12-30
  • 打赏
  • 举报
回复
我现在的情况只能保留。但这样一来系统自带的那几个按钮就老出来,我也不知道哪里的消息没有处理好,真烦人!
oyljerry 2008-12-30
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 quantity 的回复:]
他这个也不行的,我需要保留WS_MAXIMIZE和WS_MINIMIZE这些style,而不是去掉,如果把他程序中这几行代码注掉的话,系统自带的那几个按钮还是会出来的。
[/Quote]
保留?自己修改?要么就去掉,然后自己放button,想什么样式都可以自己控制
leon7909 2008-12-30
  • 打赏
  • 举报
回复
MARK
quantity 2008-12-30
  • 打赏
  • 举报
回复
请问怎么改?
quantity 2008-12-30
  • 打赏
  • 举报
回复
他这个也不行的,我需要保留WS_MAXIMIZE和WS_MINIMIZE这些style,而不是去掉,如果把他程序中这几行代码注掉的话,系统自带的那几个按钮还是会出来的。
oyljerry 2008-12-30
  • 打赏
  • 举报
回复
直接资源里面设置Title bar为false去掉
robert_duan 2008-12-30
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=317
这里是一个自绘对话框程序,请参考这个.
SnailYOHO 2008-12-30
  • 打赏
  • 举报
回复
WS_MAXIMIZE和WS_MINIMIZE这些style去掉
自己放button处理最大化最小化

15,979

社区成员

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

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