窗体分为两部分:客户区(Client area)和非客户区(Non-Client area)
WM_PAINT消息、OnPaint()方法、GetDC()API函数都是处理窗体客户区绘制的
而标题栏处于非客户区中,所以WM_PAINT消息、OnPaint()方法、GetDC()API函数都用不上
GetWindowDC()是获得整个窗体的画布句柄(Device Context翻译为:设备清单,我习惯称为画布句柄),包括非客户区
GDI的绘制都离不开DC,因为操作系统必须知道你要在什么地方绘制图形
当其他窗体遮挡或者移开,系统都会重新绘制窗体。这时就会发出WM_PAINT和WM_NCPAINT消息通知窗体重绘界面。
收到WM_NCPAINT消息(非客户区绘制消息)说明非客户区正需要重新绘制
重载WndProc()方法(窗体消息处理过程),处理WM_NCPAINT等消息即可....
“基本的步骤” 就是:截获WM_NCPAINT消息、得到窗体完整画布句柄、在完整画布上绘制图形。
建议搜索关键词:“C# WM_NCPAINT WndProc Graphics”得到更多的参考资料
WM_PAINT消息、OnPaint()方法、GetDC()API函数都是处理窗体客户区绘制的
而标题栏处于非客户区中,所以WM_PAINT消息、OnPaint()方法、GetDC()API函数都用不上
GetWindowDC()是获得整个窗体的画布句柄(Device Context翻译为:设备清单,我习惯称为画布句柄),包括非客户区
GDI的绘制都离不开DC,因为操作系统必须知道你要在什么地方绘制图形
当其他窗体遮挡或者移开,系统都会重新绘制窗体。这时就会发出WM_PAINT和WM_NCPAINT消息通知窗体重绘界面。
收到WM_NCPAINT消息(非客户区绘制消息)说明非客户区正需要重新绘制
重载WndProc()方法(窗体消息处理过程),处理WM_NCPAINT等消息即可....
“基本的步骤” 就是:截获WM_NCPAINT消息、得到窗体完整画布句柄、在完整画布上绘制图形。
建议搜索关键词:“C# WM_NCPAINT WndProc Graphics”得到更多的参考资料