本帖最后由 screen12 于 2014-01-30 09:13:38 编辑

解决方案 »

  1.   

    另外还有一点不懂,图片左上方的“五”字(上半部分不知何故被截去了),是用TextOut()函数输出的。据说TextOut输出的字体,会覆盖alpha通道,也就是将alpha值置0,然后用UpdateLayeredWindow函数将hdcmem的内容更新到窗口的hdcScreen的时候,由于alpha为0,因此呈完全的透明状。可是为什么在白背景下,确实完全透明,但移到灰色背景下,却可以显示一个淡红色的“五”字呢?并没有完全透明啊!这是怎么回事?
      

  2.   

    刚才把SolidBrush solidBrush(Color(255, 255, 0, 0));里的第一个参数,alpha值,改为127,竟然就行了!如下:
    SolidBrush solidBrush(Color(127, 255, 0, 0));字体为鲜红色,而且完全不透明,正是我希望的!只是不太懂,这是为什么呢?按理说,alpha值为255才是完全的不透明,可是为什么255的时候,会透明,而且在灰色背景下原来鲜红的字体变得暗红,而127却可以完全不透明?