CreateCheckboxImageList -一个非mfc函数,用于创建主题化复选框的imagelist
介绍 复选框图像通常在树控件和 列表控件,其中使用一个实际的复选框控件 困难或将导致创建大量的子控件。 我使用的是早期版本的CreateCheckboxImageList 在我XHtmlTree 篇文章。在这个版本中,我删除了MFC依赖关系 并添加选项来指定复选框图像的大小。 感谢赵玉恒的出色表现 视觉风格 我使用它作为uxtheme.dll包装器的基础。 CreateCheckboxImageList API 下面是CreateCheckboxImageList函数: 隐藏,复制Code
//============================================================================= // // CreateCheckboxImageList() // // Purpose: Create themed checkbox image list // // Parameters: hDC - device context for drawing // nSize - height and width of images // crBackground - fill color // bUseVisualThemes - TRUE = use themes if enabled // // Returns: HIMAGELIST - imagelist handle; NULL if create fails //
的CreateCheckboxImageList函数创建一个图像列表 16幅图像,按此枚举定义: 隐藏,复制Code
enum { COLD_UNUSED_1 = 0, // 0000 COLD_UNCHECKED_NORMAL, // 0001 COLD_CHECKED_NORMAL, // 0010 COLD_TRISTATE_NORMAL, // 0011 COLD_UNUSED_2, // 0100 COLD_UNCHECKED_DISABLED, // 0101 COLD_CHECKED_DISABLED, // 0110 COLD_TRISTATE_DISABLED, // 0111 HOT_UNUSED_1, // 1000 HOT_UNCHECKED_NORMAL, // 1001 HOT_CHECKED_NORMAL, // 1010 HOT_TRISTATE_NORMAL, // 1011 HOT_UNUSED_2, // 1100 HOT_UNCHECKED_DISABLED, // 1101 HOT_CHECKED_DISABLED, // 1110 HOT_TRISTATE_DISABLED }; // 1111
前8张图片是“冷的”,后8张是“热的”。从 从冷到热,你可以或以8为状态。从正常转换到 禁用后,可以或状态用4。 在MFC应用程序中使用CreateCheckboxImageList 它很容易使用CreateCheckboxImageList与MFC通过简单 将HIMAGELIST附加到CImageList: 隐藏,复制Code
HIMAGELIST hil = 0; hil = HDCheckboxImageList::CreateCheckboxImageList(pDC->m_hDC, 16, GetSysColor(COLOR_WINDOW), TRUE); CImageList imagelist; // usually this will be class variable imagelist.Attach(hil);
CreateCheckboxImageList演示 CreateCheckboxImageList演示应用程序显示四个图像列表 不同的尺寸: 当启用可视主题复选框未选中时,复选框 没有创建视觉主题: 如何使用 步骤1 -添加文件 要将CreateCheckboxImageList集成到应用程序中,首先需要 添加以下文件到您的项目: CreateCheckboxImageList.cpp cpp文件应该设置为不使用预编译头 在Visual Studio。否则,您将得到错误 隐藏,复制Code
fatal error C1010: unexpected end of file while looking for precompiled header directive
步骤2 -添加头文件到源模块 在你想使用CreateCheckboxImageList的模块中, 包含头文件createcheckboximaglib .h。 步骤3 -添加代码 在OnInitDialog或其他初始化例程中, 添加创建imagelist的代码,然后在其中绘制适当的图像 DrawItem()或OnPaint()函数。 文件XVisualStyles.h包含头文件 uxtheme.h tmschema.h。这些文件可以在 Windows平台的SDK。通常,在这里我将插入下载url 对于平台SDK,但是它的位置经常变化,所以最好 让谷歌为你找到它: http://www.google.com/search?q=%22platform + sdk % 22。 修订历史 版本1.1 - 2008年4月15日 首次公开发行 版本1.0 - 2007年7月15日 嵌入在XHtmlTree 使用 这个软件被发布到公共领域。你可以自由使用它 以您喜欢的任何方式,除了您不能出售此源代码。如果你 修改或扩展它,请考虑张贴新的代码在这里为每个人 与你分享。本软件是“按原样”提供的,没有任何明示或暗示 保修。我不承担任何损害或损失的业务 此软件可能导致。 本文转载于:http://www.diyabc.com/frontweb/news758.html