首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > C++ >

关于消息和DC,SetTextColor的

2012-04-22 
关于消息和DC,SetTextColor的求助一个完整的消息是不是分为UINT message, WPARAM wParam, LPARAM lParam,

关于消息和DC,SetTextColor的求助
一个完整的消息是不是分为UINT message, WPARAM wParam, LPARAM lParam,这三个部分?
比如,按键还是鼠标消息,按下那个键?是哪个参数决定.
刚学win32api
想看看修改字体颜色的函数效果和用法
所以在WM_CREATE处理里面
hdc = GetDC (hwnd) ;
SetTextColor(hdc,RGB(0,255,255));
可是运行后文字颜色没有改变;
我又在WM_PAINT处理时添加了
hdc = BeginPaint (hwnd, &ps) ;
SetTextColor(hdc,RGB(0,255,255));
这时才会改变字体颜色,想问一下,
窗口接收到的第一个消息不应该是CREATE么?
为什么我在这里修改不行?
在个问题就是,虽然CREATE里对DC释放了.
PAINT时再次获取就成了修改前的DC了么?
为什么不会保存修改后的呢?



[解决办法]
比如,按键还是鼠标消息,按下那个键?是哪个参数决定.
得看具体的消息,msdn

为什么不会保存修改后的呢?
SelectObject

[解决办法]
如果窗口类不指定CS_OWNDC,则GetDC,BeginPaint获取的是系统缓存的公用dc,每次获取时都会初始化成缺省值,所以ReleaseDC后修改的属性不保留
要加快绘制速度,为窗口类指定CS_OWNDC,窗口创建时就为其准备好专用的dc,这个dc由GetDC,BeginPaint获取时不会改成缺省值,修改的属性可保留,无需ReleaseDC,并且句柄值可以保存,后面再用时无需GetDC

热点排行