EVC3中,如何捕获WM_NCPAINT消息?
EVC自带的MSDN上没有找到这个消息,程序中也不能使用这个消息。所有头文件中也没有找到
发现vc6中此消息被预定义为0x0085,随用此值switch,依然无效。
单单截获WM_PAINT来重画窗口的话,画的依然不全面,因为我发现,如果一个BUTTON有WM_BORDER属性的话,无论怎样画,它的边框都在,在WM_PAINT中,直接用以下代码:
PAINTSTRUCT ps;
BeginPaint( m_hWnd, &ps );
EndPaint( m_hWnd, &ps );
HDC hDC = GetWindowDC( m_hWnd );
// draw with hDC
ReleaseDC( m_hWnd, hDC );
这个用GetWindowDC获取的DC可以把这个边框去掉。
问题再简单些就是:如何用自己的代码重画非客户区。