WM_NCPAINT
是窗体客户区以外的重绘消息,比如边框
如果不做特殊处理,一般是由系统负责处理的
转:http://blog.youkuaiyun.com/yingzheng1983/article/details/3135838
译者:一政
声明:转载此文档时请注明转载来源和我的名字,本人水平有限翻译有误处请指出
WM_NCPAINT
当窗体框架(非客户区)要被重画时,WM_NCPAINT消息产生
窗体可用一个WindowProc函数接收这个消息
LRESULT CALLBACK WindowProc(
HWND hwnd, // 窗体句柄
UINT uMsg, // WM_NCPAINT
WPARAM wParam, //处理窗体更新区域 (HRGN)
LPARAM lParam // 不用
);
参数
wParam
处理窗体更新区域,对窗体来说缺省更新的部分区域是框架。当wParam设为1时,整个窗体将得到更新。
返回值
如果应用这个消息就返回零
附言:
DefWindowProc函数画窗体框架,可以拦截这条WM_NCPAINT消息
并画自己特有风格的窗体框架。剪切区域总是直角矩形,即使窗体的框架
被改变。
wParam可以传给GetDCEx函数。看下面例子
case WM_NCPAINT:
{
HDC hdc;
hdc = GetDCEx(hwnd, (HRGN)wParam, DCX_WINDOW|DCX_INTERSECTRGN);
// 进入设备场景画
ReleaseDC(hwnd, hdc);
}
,
需求
Windows NT/2000/XP
Windows 95/98/Me