OnSerCursor函数:
这是个消息响应函数
OnSetCursor由消息 WM_SETCURSOR 触发
The WM_SETCURSOR message is sent to a window if the mouse causes the cursor to move within a window and mouse input is not captured.只要鼠标移动OnMouseMOve就会自动发送 WM_SETCURSOR从而触发OnSetCursor,因此在设计改变鼠标指针的程序时,一般不要在OnMouseMOve事件中调用SetCursor,容易引起指针闪烁。设置鼠标指针形状合理的方法是:在OnMouseMove中使用一个变量记住各矩形crect中的鼠标形状,然后在OnSetCursor调用SetCursor设置鼠标。
总结:光标移动时,就会触发WM_SETCURSOR,默认的onSetCursor函数是设置箭形的光标;想改变光标形态尽量在OnSetCursor函数中设置,可以避免轻微闪烁的问题。
CBitmap::FromHandle(g_hBitmap)->GetBitmap(&bmp);
g_hBitmap是一个全局的DDB位图句柄,我们通过这个句柄,获得一个DDB位图指针,然后填充一个BITMAP结构体bmp ;
DDB位图与DIB位图最大的不同就是DDB没有BITMAPINFO结构(信息头与颜色表)