- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我,或者更确切地说是我的一个用户,有一个非常奇怪的问题,alpha 混合图标在他的 Windows XP 安装上不能正确显示。通常 alpha 混合图标在 XP 和更新版本上应该不是问题,但这个真的让我感到困惑。
我有一个 MFC CToolBar,几乎是一个普通的 WinAPI 工具栏,我用一个 CImageList(所以基本上是一个普通的 WinAPI 图像列表)来喂它。屏幕模式 < 32 位或更旧的操作系统有回退代码,它以 8 位透明度读取我的位图并将其减少为预乘的 1 位透明度。在 XP 上,使用 32 位位深度(用户确认他使用这些设置,并且由于后备代码,图标实际上以 16 位位深度正确显示),我使用 创建图像列表ILC_COLOR32
标志,如 MSDN 中所示.此外,输入图像列表的位图是使用 CreateCompatibleBitmap
(位计数 = 32,平面 = 1)创建的。
到目前为止,在我亲自测试过的所有系统上,这项工作都按预期工作,即我的工具栏上有漂亮的 alpha 混合 32 位图标。但是,在用户的 XP 安装上,它看起来像这样:http://bugs.openmpt.org/file_download.php?file_id=102&type=bug这是完全忽略 alpha channel 时图标的样子(您可以通过一些通常不可见的错误像素来判断,因为 alpha channel 是完全透明的)。因此,尽管在 XP 上,尽管使用 32 位屏幕模式,并且尽管使用 ILC_COLOR32
,alpha channel 还是被完全忽略了。
我以前从未见过这样的行为,显然用户在使用其他应用程序时也没有遇到过这个问题。在 WinXP 的工具栏上使用 alpha 混合图像时,有什么我必须牢记的吗?
创建图片列表images的相关代码可见here (32 位屏幕模式的代码在底部)和 there (特别是 PNG::Bitmap::ToDIB)。
最佳答案
我有一段时间没有这样做了,但我相信您需要创建一个 32-bpp 的 DIBSECTION 而不是一个兼容的位图来传递到工具栏,否则 alpha channel 可能会丢失——即使在具有32-bpp 显示。
关于c++ - 带有 alpha 混合图标的工具栏在一个 WinXP 安装中无法正确显示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23529471/
我正在寻找 WinXP 上的 API 以在已安装的 IME 之间切换。 场景是,能够插入语言键盘(比如西类牙语)并通过单击 UI 按钮(比如名为西类牙语的按钮)更改 IME 例如我插入西类牙语键盘并单
1 在C:\WINDOWS\system32\drivers\etc\hosts 添加如下代码: 127.0.0.1 localhost 127.0.0.1 x.test.com x.test1.c
在希伯来语/希伯来语本地化安装中输入密码的可接受方式是什么?密码输入对话框是否应该与左侧追加的新字符右对齐?像这样: |----------------------| | |
我们的应用程序是内存密集型的,需要读取大量磁盘文件。总负载可以超过 3 GB。 有一个自定义的内存管理器,它使用内存映射文件来实现读取如此庞大的数据。仅当需要时,文件才会映射到进程内存空间,这样进程内
我有一种文件格式需要能够在资源管理器缩略图中显示。由于目标系统是 windows XP,因此 Vista PreviewHandler API 将不适用。我将使用 C++。 我该怎么做? 最佳答案 您
引用自 SVN 手册: In Subversion 1.6, a new caret (^) notation was introduced as a shorthand for “the URL o
一点历史:我们有一个应用程序,最初是在很多年前编写的(1998 年是 PVCS 的第一个日期,但该应用程序比它早 5 年,因为它最初是一个 DOS 程序)。此应用程序通过串行与硬件进行通信。当我们使用
我最近在开发一个网站,很大一部分依赖于JQuery的使用,目标浏览器是IE8,但是我一直在Win7机器上开发,现在才意识到之间的兼容性存在差异WinXP 和 Win7 上的 IE8。 所以很多东西都会
我向 super 用户提出了这个问题,并获得了风滚草徽章(10 天内有 13 次浏览),所以我认为这里可能是正确的地方。 我的 Windows 机器上安装了多个版本的 Python。我希望能够在默认使
我想在 Windows XP 的 python 中将键盘语言从英语更改为阿拉伯语,比如我有两行编辑,第一行用英语写,当移动到第二行时,编辑语言将自动为阿拉伯语?? 最佳答案 您正在描述一个不平凡的任务
你好,我正在编写一个将在 Windows XP 机器上运行的批处理脚本。此脚本需要能够可靠地验证作为命令行参数传递的目录是否确实存在。 假设我的脚本名为script.bat,它需要支持以下作为合法的命
复制代码 代码如下: If (Lcase(Right(Wscript.FullName,11)) = "wscript.exe") Then CreateObject(&qu
我安装了 Windows XP 和 Visual Studio 2010。 旨在使用 FxCop 检查解决方案是否符合 Microsoft 代码指南。 现在发现 FxCop 是“Microsoft W
我还使用第三方组件(在 D7、WinXP 上开发)开发了一个应用程序。当我在 XP 上部署此应用程序时,一切正常。当我在 Vista 上运行它时,应用程序停止正常工作: 工具栏上的工具按钮大小不均匀,
我在这里使用 js-ctypes 在 winxp 上使用 winapi 来获取任务栏上按钮索引 1 处的按钮。但是,这里的这一行使我的代码崩溃: var rez = SendMessage(hTool
这个问题已经有答案了: VB6 Program Crashing: Part 2. Advice on fixing Access Violation (0xC00000005) (1 个回答) 已关
按照此 py 包官方页面上的说明进行操作: https://pypi.python.org/pypi/setuptools#windows-7-or-graphical-install “对于 Win
我需要移动控制台光标位置的字符/转义序列。知道左/右/上/下光标控件会很好,但如果不可能的话,一个家(转到控制台第一行的第一个字符)。提前致谢。 最佳答案 最好的办法是使用控制台 API。这是 ref
编辑:Firefox 2 Windows XP 重现问题的步骤: Firefox 2 并访问:http://resopollution.com/rentfox/html/property_setup.
http://msdn.microsoft.com/en-us/library/windows/desktop/ms648045%28v=vs.85%29.aspx 告诉我: If the hinst
我是一名优秀的程序员,十分优秀!