使用Win32 API 渲染一个标准界面元素
创始人
2024-04-26 09:20:32

有这么一个Win32 API,名叫 DrawFrameControl,它可以用来在你的自定义控件上渲染一些标准的窗口元素。
下面我们举一个简单的例子来说明。

在下面的例子中,我们会使用这个 API 函数来绘制一个已选择的单选按钮。具体方法是,在我们之前的例子程序中做出如下的修改。

当运行修改后的程序,你会看到在窗口的角落有一个单选按钮。Woo-hoo。
可能你会发现,这个单选按钮是没有带主题的。如果你想绘制一个带主题的单选按钮,则需要使用定义在头文件 uxtheme.h中的相关绘制函数来实现。具体方法如下,在我们的例子代码中,做出如下的修改。

新的版本会自动获取当前 Windows 主题并应用到按钮外观上。如果没有启用主题,则调用会失败。
当需要绘制控件时,我们会查看是否有可用的主题。如果是这样,那么我们使用 DrawThemeBackground 函数来绘制它;否则,我们以无主题的方式绘制它。当然,我们会在销毁时关闭主题句柄,如果用户更改主题,我们也会刷新主题句柄。

如果你在启用主题的情况下运行此新程序,那么你将得到漂亮的主题单选按钮,而不是老式的无主题单选按钮。

在下一篇文章中,我们将研究研究稍微复杂一些的菜单位图。

总结

在大厂纷纷自己造界面轮子的时代,能坚守Win32 API,使用传统工艺打造自己的应用,也算一个倔强的奇葩(非贬义)吧。

最后

Raymond Chen的《The Old New Thing》是我非常喜欢的博客之一,里面有很多关于Windows的小知识,对于广大Windows平台开发者来说,确实十分有帮助。
本文来自:《Rendering standard Windows elements》

相关内容

热门资讯

北京的名胜古迹 北京最著名的景... 北京从元代开始,逐渐走上帝国首都的道路,先是成为大辽朝五大首都之一的南京城,随着金灭辽,金代从海陵王...
阿西吧是什么意思 阿西吧相当于... 即使你没有受到过任何外语培训,你也懂四国语言。汉语:你好英语:Shit韩语:阿西吧(아,씨발! )日...
长白山自助游攻略 吉林长白山游... 昨天介绍了西坡的景点详细请看链接:一个人的旅行,据说能看到长白山天池全凭运气,您的运气如何?今日介绍...
应用未安装解决办法 平板应用未... ---IT小技术,每天Get一个小技能!一、前言描述苹果IPad2居然不能安装怎么办?与此IPad不...
脚上的穴位图 脚面经络图对应的... 人体穴位作用图解大全更清晰直观的标注了各个人体穴位的作用,包括头部穴位图、胸部穴位图、背部穴位图、胳...