想把控件移动到标题栏上去,有办法吗? 本帖最后由 qurrel 于 2009-10-16 11:04:59 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 1、去除窗口标题栏风格,在客户区上自行绘制标题栏;2、客户区上的控件自然能正常工作、响应鼠标等;3、通过在客户区上响应WM_NCHITTEST并做相应处理或者在WM_LBUTTONDOWN时PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0)即可移动窗口。 有正宗的方法,我在codeproject上看过,我现在没找到。我们国人写的文章! 自己模拟标题栏,也就是说关闭,最大化,最小化也要自己做,感觉也很复杂,我打算在标题栏上画假控件,说是控件其实就是能响应鼠标左键右键就行。不知道有没有人有类似的经历,能提个code参考吗? codewarrior,请问有参考code吗? 还有一个问题,重载OnNcPaint后,整个非client区都要自己画吗?能在windows的基础上修改吗?该怎么做呢? 看了这么多回帖,加上我的学习,我总结一下:1.要想在title bar上做文章,必须使用windowdc,而且应该在NC里处理;2.我想保留目前的title bar主要是不希望跟windows 缺省的窗口形式有差别;3.当然我希望在title bar的里面取出一段区域自己画自己的控件;做了一些实验后发现,只要ncpaint里调用了default(),我画的东西就看不到了,如果不调用default(),我画的东西就能看到,那这里的问题就是我的title bar需要完全的自己画,我不太希望这样;因为即使位置计算正确,我还没有试DrawFrameControl,这种做法肯定与windows不同版本的时的缺省样式不一样,所以我希望的是windows画好之后我在基础上修改,请问有办法吗?总感觉应该是可行的,但不知道该怎么做,可能问题的关键就是要想明白为什么:在ncpaint里调用了default()之后自己画的东西就看不到了。 使用DrawFrameControl之后,不知道为啥MDI的边框都是灰色的,应该就是说那个draw edge的颜色变灰了,跟windows缺省窗口不一样 处理WM_NCPAINT和WM_NCACTIVATE消息, 在里面先调用系统默认的, 再通过CWindowDC自己画就好了, 可以参考下这个http://d.download.csdn.net/down/1730379/weiym 只要我一调用CWindowDC,我的窗口边框就变灰色,是因为vista的原因吗? mfc 中socket发送的问题?请大家帮忙看看啊? 界面如何停止刷新,就是让OnPaint不执行。我记得有一个函数的 我定制了一个对话框,然后添加List Control控件,用来显示数据库表中的数据。 窗口拆分的问题 进过宝德的前辈们?感觉宝德怎么样? 开心放分:没有CSDN的日子里 谁知道拷贝,粘贴是用那个api实现的? 菜鸟问题?下面的错误是什么? 建一个mfc登录窗口 与数据库相连 !!!!!!!!!!请神推手“rovoboy(烟花满天) ”同志进来领分!〉〉〉〉〉〉〉〉〉〉〉〉 向文件尾追加数据并自动换行 静态文本框如何显示特定数字?
2、客户区上的控件自然能正常工作、响应鼠标等;
3、通过在客户区上响应WM_NCHITTEST并做相应处理或者在WM_LBUTTONDOWN时PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, 0)即可移动窗口。
我们国人写的文章!
不知道有没有人有类似的经历,能提个code参考吗?
1.要想在title bar上做文章,必须使用windowdc,而且应该在NC里处理;
2.我想保留目前的title bar主要是不希望跟windows 缺省的窗口形式有差别;
3.当然我希望在title bar的里面取出一段区域自己画自己的控件;做了一些实验后发现,只要ncpaint里调用了default(),我画的东西就看不到了,如果不调用default(),我画的东西就能看到,那这里的问题就是我的title bar需要完全的自己画,我不太希望这样;因为即使位置计算正确,我还没有试DrawFrameControl,这种做法肯定与windows不同版本的时的缺省样式不一样,所以我希望的是windows画好之后我在基础上修改,请问有办法吗?总感觉应该是可行的,但不知道该怎么做,可能问题的关键就是要想明白为什么:在ncpaint里调用了default()之后自己画的东西就看不到了。