一莫名其妙Bug,是怎么回事啊?
很怪的资源问题。
是这样的,程序需要载入资源BMP,根据这个BMP调用UpdateLayeredWindow()用颜色键控来设置非矩形窗口。
然而实际运行起来,原来不该透明的地方也变透明了。
起初以为是代码的问题,几经检查,并无问题。
后来用eXeScope提取出已经编译进PE文件的BMP资源,和编译之前的原BMP图用UE二进制比对,发现----编译后的BMP文件被修改了!!
这个BMP是8Bit色深的256色索引图。ColorKey原来的索引是0x00(COLORREF 0x000000,黑色),编译完变成0x28了!!怪不得呢。
这是问么回事啊?有没有人之前遇到过?怎样解决才好,总不能对编译好的PE再用eXeScope一个一个的替换吧。