Win32 Api的相关问题

1.Windows api中PostMessage和SendMessage函数的区别是什么?

答:PostMessage和SendMessage函数的区别主要在于是否等待其它程序消息处理。PostMessage只是把消息放入队列,不管其它程序是否处理都继续执行,而SendMessage必须等待其它程序处理消息后才继续执行。这两个函数的返回值也不同,PostMessage的返回值表示PostMessage函数执行是否正确,而SendMessage的返回值表示其它程序处理消息后的返回值。

2.在Windows GDI编程过程中,绘制函数常会导致屏幕闪烁,请问有哪些优化的方法?

答:如果每次绘制时都对设备DC进行了多次绘制,动画显示的时候会有屏幕闪烁的问题。解决的办法就是申请一个内存DC作为缓冲,每次先写入内存DC,然后用BitBlt将内存DC中的内容复制到设备DC中,这样就OK了。

       注意:内存DC创建后,并不能直接绘图,需要再申请一个内存控件,不然什么也画不出来,用CreateCompabileBitmap创建一个兼容的HBITMAP对象,然后选进内存DC就可以了,另外不要忘了SelectObject、DeleteObject、DeleteDC来释放资源,不然就要出现内存泄漏。

你可能感兴趣的:(api,职场,休闲,绘制函数,屏幕闪烁)