Minigui开发心得 -- 不定期更新

本文分享了Minigui开发中的一些经验,包括如何确保主窗口接收消息、避免在控件消息中创建主窗口、使用PostMessage避免销毁过程中的异常、设置透明度的方法以及解决拖影问题。同时提到了自定义颜色函数RGB2Pixel和RGBA2Pixel的使用注意事项。
摘要由CSDN通过智能技术生成
  1. BroadcastMessage发送广播的时候,不会确保各个主窗口会接收到消息,它只负责发送到HWND_DESKTOP,因此如果需要确保主窗口能够接收到消息的话,可以使用其他方式,比如SendMessage();

  2. 最好不要在控件的过程函数消息中去新创建主窗口,因为主窗口在销毁的时候容易和该控件的某些消息逻辑掺杂在一块,引发异常;比较好的方法是控件发消息给自己的主窗口,然后让自己的主窗口去新创建主窗口;

  3. 主窗口在销毁的过程中,如果需要给另一个主窗口的某个控件发消息的话,最好不要使用SendMessage()这种带有“阻塞式”的方式,可以使用PostMessage()代替,如果非要确保消息能够执行到,可以给该控件的主窗口发送消息,由该主窗口再通知到这个控件,虽然比较绕但是安全;

  4. 设置透明度
    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

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值