在wince下(解决马上给分):如何自画对话框上的标题栏?如何让话框上有标题栏而没有边框?

逸萌 2009-04-20 01:38:53
响应wm_NcPaint会产生编译错误?
...全文
265 20 打赏 收藏 转发到动态 举报
写回复
用AI写文章
20 条回复
切换为时间正序
请发表友善的回复…
发表回复
「已注销」 2011-01-24
  • 打赏
  • 举报
回复
我最近也遇到了这个需求,想做成一个类似QQ聊天面板的效果
逸萌 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 papapa123123 的回复:]
首先窗口不要标题:
然后给窗口贴背景图:

给自绘标题栏贴 背景就是下面的 CRect()指定的地方。

在onpaint函数里加入下
m_MemDC.DrawText(m_strCaption,CRect(0,0,长,高),DT_CENTER|DT_VCENTER);

然后bitbilt的就可以了。
[/Quote]

问题不是自绘标题栏了,是disable的,如何使之move?
papapa123123 2009-04-21
  • 打赏
  • 举报
回复
其中 CRect() 中指定你标题栏的起始位置(x,y,w,h)就是0,0,长,高, 然后strCaption 就是你的自绘标题内容。

自己实现下,就几行代码。
papapa123123 2009-04-21
  • 打赏
  • 举报
回复
首先窗口不要标题:
然后给窗口贴背景图:

给自绘标题栏贴 背景就是下面的 CRect()指定的地方。

在onpaint函数里加入下
m_MemDC.DrawText(m_strCaption,CRect(0,0,长,高),DT_CENTER|DT_VCENTER);

然后bitbilt的就可以了。
逸萌 2009-04-21
  • 打赏
  • 举报
回复
在enable时可以如下移动对话框:
1、CDialog::OnNcHitTest中: return HTCAPTION;

2、PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
3、SendMessage( WM_SYSCOMMAND,0xF012,0)

disable时如何做?
逸萌 2009-04-21
  • 打赏
  • 举报
回复
问题是我的对话框是disable的,如何使之move?我在代码中发送消息给对话框却无效,不知道怎么办
xtjqu 2009-04-21
  • 打赏
  • 举报
回复
用鼠标(触摸)去移吗
在DIALOG的OnLButtonDown事件里
PostMessage (WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x,point.y));
逸萌 2009-04-21
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 mydeardingxiaoli 的回复:]
在enable时可以如下移动对话框:
1、CDialog::OnNcHitTest中: return HTCAPTION;

2、PostMessage(WM_NCLBUTTONDOWN, HTCAPTION, MAKELPARAM(point.x, point.y));
3、SendMessage( WM_SYSCOMMAND,0xF012,0)

disable时如何做?
[/Quote]

我本来是不想用moveWindow而达到move的效果,
这么就都没有答案,就只能处理moveWindow了唉

disable的对话框,如何使之像上面那三种方式简单一句代码就可以实现移动了?
5:00结贴
papapa123123 2009-04-21
  • 打赏
  • 举报
回复
自画,然后处理需要move到的地方,在move到的地方重新paint 不可以了?
cnzdgs 2009-04-20
  • 打赏
  • 举报
回复
SetWindowRgn把边框裁剪掉。
91program 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 9 楼 shuiyan 的回复:]
对话框隐藏标题栏,自己画标题栏,并且处理拖动。虽然麻烦,但不复杂,只要解决了一次,以后就随时照搬了。
[/Quote]

只能这样处理
shuiyan 2009-04-20
  • 打赏
  • 举报
回复
对话框隐藏标题栏,自己画标题栏,并且处理拖动。虽然麻烦,但不复杂,只要解决了一次,以后就随时照搬了。
jinlking 2009-04-20
  • 打赏
  • 举报
回复
处理窗口的拖动也不是很复杂的。
逸萌 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 ceFighter 的回复:]
WinCE与windows编程还是有点区别的,在winCE里好像没有WM_NCPAINT这个消息.建议你把对话框设置成无标题栏,然后自再画一个标题栏.这样你可以在标题栏的WM_PAINT消息里自画了.
[/Quote]
那样就要自己处理标题的拖动了,有什么另外的方式自画标题栏吗
SZ_Devin 2009-04-20
  • 打赏
  • 举报
回复
WinCE与windows编程还是有点区别的,在winCE里好像没有WM_NCPAINT这个消息.建议你把对话框设置成无标题栏,然后自再画一个标题栏.这样你可以在标题栏的WM_PAINT消息里自画了.
逸萌 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ultrapro 的回复:]
自己没有标题栏的就行了,然后自己画
[/Quote]
这个我知道,但不是我要的
逸萌 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 ultrapro 的回复:]
自己没有标题栏的就行了,然后自己画
[/Quote]
这我知道,我就是针对标题栏,而不是自己画个
儿大不由爷 2009-04-20
  • 打赏
  • 举报
回复
自己没有标题栏的就行了,然后自己画
逸萌 2009-04-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 liangxd09 的回复:]
自己重写一个标题栏控件,我的就是这么做的
[/Quote]
标题栏不是独立的控件?
重写一个标题栏控件,又怎么替换话框的标题栏?
提供你的代码参考
liangxd09 2009-04-20
  • 打赏
  • 举报
回复
自己重写一个标题栏控件,我的就是这么做的

19,502

社区成员

发帖
与我相关
我的任务
社区描述
硬件/嵌入开发 嵌入开发(WinCE)
社区管理员
  • 嵌入开发(WinCE)社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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