求救--重画标题栏(比标准的矮)时,失去或者恢复窗口激活时,WINDOWS标题栏会出来. 我响应这个消息WM_NCCALCSIZE,把窗口标题栏比正常WINDOWS的高度矮一点,如原来30,现在26,在标题栏上放个图片也是26高,但在切换窗口活动情况下,原来的WINDOWS蓝色会出来,还有最小,最大,关闭按钮,,把我的下面客户区域的菜单栏给占了。应该怎么样做呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 WM_NCPAINTWM_ACTIVATEWM_NCACTIVATE响应这三个消息,在消息响应函数把图片重画 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;} 你要处理很多消息的,基本那些WM_NC***的消息你都要处理,不仅仅是WM_NCCALCSIZE消息。还包括WM_SETCURSOR的,不然的话,WINDOWS标题栏还是会出来. 我现在响应了.WM_NCPAINT, WM_NCACTIVATE,WM_ACTIVATE, WM_NCMOUSEMOVE,WM_NCLBUTTON,可现在还有个问题就是运行后,第一次把鼠标移到边框上,就会出现原WINDOWS的内容,只要再最小最大化后一次,再也不会出现WINDWS内容.应该怎么样处理呢? Windows XP环境下截获0x00AE消息就行了 楼上mynamelj(夏娃的诱惑)能否详细告知呢?谢谢. 例如:LRESULT WndProc(...){ ... case 0x00AE: return 0;} 谢谢mynamelj(风之羽翼)确实是这样的.搞定.不过不知道这个消息是做什么用的.>WINDOWS消息中没有介绍这个值. http://www.vckbase.com/document/viewdoc/?id=317 WM_NCHITTEST这个把WINDOWS自己处理给断了就不会出最大小及关闭按钮了 VC 开机启动的问题 急等 多帧网页内容获取 如何从字符串中提取字符 一个对话框显示的问题。 请问有谁用加拿大Matrox公司的Matrox Meteor系列图像采集卡? 有没有人知道如何使用TCP/IP+阻塞+多线程的数据传输的方法呢? 帮忙!!! 我要用BM_SETIMAGE给一个按钮(在对话框中)赋予图形,来做图形按钮?这个BM_SETIMAGE具体怎么用??MSDN没说明白~~~~~~~ dde中回调函数应该放在那个位置阿,为什么我的老是出错 有用Xtreme ToolkitPro v11.2.1的吗?我遇到一个奇怪问题,来看看 100分!结构体数组及其函数参数传递问题 帮帮忙
WM_ACTIVATE
WM_NCACTIVATE
响应这三个消息,在消息响应函数把图片重画
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;}
WM_NCLBUTTON,可现在还有个问题就是运行后,第一次把鼠标移到边框上,就会出现原WINDOWS的内容,
只要再最小最大化后一次,再也不会出现WINDWS内容.应该怎么样处理呢?
LRESULT WndProc(...)
{
...
case 0x00AE:
return 0;
}
搞定.不过不知道这个消息是做什么用的.>WINDOWS消息中没有介绍这个值.