MFC给标题栏添加背景

时间:2021-06-25 00:21:05
现在做一个MFC窗口程序,要用自己的背景美化,并且要支持拖动窗口。
有两种方案,第一使用系统标题栏,这样系统可以处理标题栏的拖动消息。然后给标题栏(包括外框)添加背景。
第二使用全Client区域的对话框,整体背景。然后自己处理拖动消息。
现觉得第一种方案可能容易实现,谁有相关代码提供一下啊,时间很紧今天必须搞定。。。。
万分感谢,可以再送分。

10 个解决方案

#1


Window Rect就OK了,绘制呗。

#2


非客户区自绘呗,也不会很难。 MFC给标题栏添加背景

#3


引用 2 楼 xyzhaopeng 的回复:
非客户区自绘呗,也不会很难。

据调查了一下 不是很容易的哦
要不然也不至于发到这

#4


用第二种方法吧,正好我也要做这个功能,太简单了,
把窗体的border属性设为none,标题栏就没了,然后在窗体的OnLButtonDown消息中添加一行代码就搞定了
void tabcontrol::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
CDialog::OnLButtonDown(nFlags, point);
}

#5


一般可以用第二个,可以自己很好的控制
你可以放一个按钮什么的作为你的标题栏,然后就可以添加背景图片等, HTCAPTION来模拟非客户区作为拖动

#6


第二种比较好,容易控制,第一种的话,在不同的系统,不同的桌面主题下可能或多或少有些问题的

#7


引用 4 楼 moheng1 的回复:
用第二种方法吧,正好我也要做这个功能,太简单了,
把窗体的border属性设为none,标题栏就没了,然后在窗体的OnLButtonDown消息中添加一行代码就搞定了
void tabcontrol::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(po……


这个方法我已经在普通dialog下验证了,很好。
但是我现在是个HTMLDialog,用同样方法不行。
那位大牛知道还需要改什么东西??

#8


已解决,HTMLDialog会Redirect WM_LBUTTONDOWN
在PreTranslateMessage处理就OK了
十分感谢

#9


您好,请问HTMLDialog怎么实现的?可不可以把您的代码贴出来,谢谢!

#10


引用 8 楼 forster 的回复:
已解决,HTMLDialog会Redirect WM_LBUTTONDOWN
在PreTranslateMessage处理就OK了
十分感谢


怎么弄啊

#1


Window Rect就OK了,绘制呗。

#2


非客户区自绘呗,也不会很难。 MFC给标题栏添加背景

#3


引用 2 楼 xyzhaopeng 的回复:
非客户区自绘呗,也不会很难。

据调查了一下 不是很容易的哦
要不然也不至于发到这

#4


用第二种方法吧,正好我也要做这个功能,太简单了,
把窗体的border属性设为none,标题栏就没了,然后在窗体的OnLButtonDown消息中添加一行代码就搞定了
void tabcontrol::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(point.x,point.y));
CDialog::OnLButtonDown(nFlags, point);
}

#5


一般可以用第二个,可以自己很好的控制
你可以放一个按钮什么的作为你的标题栏,然后就可以添加背景图片等, HTCAPTION来模拟非客户区作为拖动

#6


第二种比较好,容易控制,第一种的话,在不同的系统,不同的桌面主题下可能或多或少有些问题的

#7


引用 4 楼 moheng1 的回复:
用第二种方法吧,正好我也要做这个功能,太简单了,
把窗体的border属性设为none,标题栏就没了,然后在窗体的OnLButtonDown消息中添加一行代码就搞定了
void tabcontrol::OnLButtonDown(UINT nFlags, CPoint point)
{
PostMessage(WM_NCLBUTTONDOWN,HTCAPTION,MAKELPARAM(po……


这个方法我已经在普通dialog下验证了,很好。
但是我现在是个HTMLDialog,用同样方法不行。
那位大牛知道还需要改什么东西??

#8


已解决,HTMLDialog会Redirect WM_LBUTTONDOWN
在PreTranslateMessage处理就OK了
十分感谢

#9


您好,请问HTMLDialog怎么实现的?可不可以把您的代码贴出来,谢谢!

#10


引用 8 楼 forster 的回复:
已解决,HTMLDialog会Redirect WM_LBUTTONDOWN
在PreTranslateMessage处理就OK了
十分感谢


怎么弄啊