求救--重画标题栏(比标准的矮)时,失去或者恢复窗口激活时,WINDOWS标题栏会出来.

cici2006 2007-03-14 04:18:14
我响应这个消息WM_NCCALCSIZE,把窗口标题栏比正常WINDOWS的高度矮一点,
如原来30,现在26,在标题栏上放个图片也是26高,
但在切换窗口活动情况下,原来的WINDOWS蓝色会出来,还有最小,最大,关闭按钮,,把我的下面客户区域的菜单栏给占了。

应该怎么样做呢?
...全文
296 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
duankuanjun 2007-04-07
  • 打赏
  • 举报
回复
WM_NCHITTEST这个把WINDOWS自己处理给断了就不会出最大小及关闭按钮了
mynamelj 2007-03-22
  • 打赏
  • 举报
回复
行了,就结贴吧。
Y___Y 2007-03-22
  • 打赏
  • 举报
回复
http://www.vckbase.com/document/viewdoc/?id=317
cici2006 2007-03-22
  • 打赏
  • 举报
回复
这就比较郁闷啦.这种隐性的东西,没有人知道,自己哪里知道啦.真有一招.
cici2006 2007-03-22
  • 打赏
  • 举报
回复
知其然不知其所以然.
cici2006 2007-03-22
  • 打赏
  • 举报
回复
结贴结贴了.
cici2006 2007-03-21
  • 打赏
  • 举报
回复
楼上mynamelj(夏娃的诱惑)能否详细告知呢?谢谢.
mynamelj 2007-03-21
  • 打赏
  • 举报
回复
专提供给写界面人用的!呵呵!
cici2006 2007-03-21
  • 打赏
  • 举报
回复
谢谢mynamelj(风之羽翼)确实是这样的.
搞定.不过不知道这个消息是做什么用的.>WINDOWS消息中没有介绍这个值.
mynamelj 2007-03-21
  • 打赏
  • 举报
回复
例如:
LRESULT WndProc(...)
{
...
case 0x00AE:
return 0;
}
mynamelj 2007-03-14
  • 打赏
  • 举报
回复
Windows XP环境下截获0x00AE消息就行了
cici2006 2007-03-14
  • 打赏
  • 举报
回复
我现在响应了.WM_NCPAINT, WM_NCACTIVATE,WM_ACTIVATE, WM_NCMOUSEMOVE,
WM_NCLBUTTON,

可现在还有个问题就是运行后,第一次把鼠标移到边框上,就会出现原WINDOWS的内容,
只要再最小最大化后一次,再也不会出现WINDWS内容.

应该怎么样处理呢?
tszzp 2007-03-14
  • 打赏
  • 举报
回复
你要处理很多消息的,基本那些WM_NC***的消息你都要处理,不仅仅是WM_NCCALCSIZE消息。还包括WM_SETCURSOR的,不然的话,WINDOWS标题栏还是会出来.
happyness44 2007-03-14
  • 打赏
  • 举报
回复

LRESULT CMainFrame::DefWindowProc(UINT message, WPARAM wParam, LPARAM lParam)
{
LRESULT lrst=DefWindowProc(message,wParam,lParam);
if(!::IsWindow(m_hWnd))
return lrst;
if(message==WM_NCPAINT||message==WM_NCACTIVATE||message==WM_NOTIFY)
{
CDC*pWinDC=GetWindowDC();
if(pWinDC)
DrawTitleBar(pWinDC);//重绘title
ReleaseDC(pWinDC);
}
return lrst;

}
Bear520leon 2007-03-14
  • 打赏
  • 举报
回复
WM_NCPAINT
WM_ACTIVATE
WM_NCACTIVATE
响应这三个消息,在消息响应函数把图片重画

15,976

社区成员

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

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