VC中GDI绘图技术:
》》通过HDC设备环境句柄绘图有三种方式:标准客户区绘图,临时客户区绘图,非客户区绘图
1-标准客户区绘图,是在WM_PAINT消息回调时执行,调用BeginPaint函数,EndPaint函数。
2-临时客户区绘图,是在任何消息回调时都可以执行,调用GetDc获取临时客户区句柄进行绘图,最后调用ReleaseDc释放。
3-非客户区绘图,是在WM_NCPAINT消息回调时执行,针对一些窗口标题和边框的绘制,是调用GetWindowDc获取句柄进行绘图,最后调用ReleaseDc释放。
》》HDC设备环境句柄和坐标系说明:
屏幕坐标系和客户区坐标系,GetWindowRect获取的是基于屏幕坐标系,原点在屏幕左上角,而GetClientRect获取的是客户区坐标系,原点在标题栏下的左上角。还有两个转换函数:ScreenToClient和ClientToScreen。
HDC hDc=GetDc(hwnd);//管理的是整个窗口的客户区,坐标系(0,0)是在客户区的左上角
HDC hDc=GetWindowDc(hwnd);//管理的是整个窗口包括非客户区,坐标系(0,0)是在整个窗口的左上角
HDC hDc=GetDc(NULL);//传递了空值NULL,管理的是整个屏幕从左上角到右下角,坐标系(0,0)在整个屏幕的左上角