-
BroadcastMessage发送广播的时候,不会确保各个主窗口会接收到消息,它只负责发送到HWND_DESKTOP,因此如果需要确保主窗口能够接收到消息的话,可以使用其他方式,比如SendMessage();
-
最好不要在控件的过程函数消息中去新创建主窗口,因为主窗口在销毁的时候容易和该控件的某些消息逻辑掺杂在一块,引发异常;比较好的方法是控件发消息给自己的主窗口,然后让自己的主窗口去新创建主窗口;
-
主窗口在销毁的过程中,如果需要给另一个主窗口的某个控件发消息的话,最好不要使用SendMessage()这种带有“阻塞式”的方式,可以使用PostMessage()代替,如果非要确保消息能够执行到,可以给该控件的主窗口发送消息,由该主窗口再通知到这个控件,虽然比较绕但是安全;
-
设置透明度
A. 设置图片透明度
BITMAP bmp
bmp.bmType = BMP_TYPE_COLORKEY|BMP_TYPE_ALPHACHANNEL;
bmp.bmColorKey = COLOR_lightgray;
bmp.bmAlpha = 160;
FillBoxWithBitmap(hdc, x, y, w, h, &bmp);
上面这段代码可以实现图片透明度降低,bmp.bmAlpha越小,透出来的内容越少,表现出来的就是越暗;
需要注意一点,因为透明的图片不断叠加的话,会越来越黑,bmp.bmColorKey = COLOR_lightgray这行就是防止图片变黑的。B. 设置画布透明度
HD
Minigui开发心得 -- 不定期更新
于 2021-11-20 15:55:22 首次发布
本文分享了Minigui开发中的一些经验,包括如何确保主窗口接收消息、避免在控件消息中创建主窗口、使用PostMessage避免销毁过程中的异常、设置透明度的方法以及解决拖影问题。同时提到了自定义颜色函数RGB2Pixel和RGBA2Pixel的使用注意事项。
摘要由CSDN通过智能技术生成