跟我一起玩Win32开发(12):使用控件——单选按钮

本文介绍了在Win32开发中如何使用单选按钮控件,包括设置BS_RADIOBUTTON和BS_AUTORADIOBUTTON样式,以及利用WS_GROUP进行控件分组,确保单选功能的实现。通过示例代码展示了如何创建和管理单选按钮,帮助读者理解Win32控件的使用。
摘要由CSDN通过智能技术生成

今天,咱们还是接着玩“控件斗地主”,这是我原创的超级游戏,有益身心健康,玩一朝,十年少。

哦,对,脑细胞极速运动了一下,想起了一个问题,这个破问题虽然网上有很多种解决方案,但是,并没有让所有人都解决问题。

不知道大家有没有调用过LoadIconMetric函数,这个函数在静态库Comctl32.lib中有定义(当然,动态库也有),不过,创建项目的时候,默认并没有引用它的,于是,大家知道,解决调用的方法就是在代码中加上:

#pragma comment(lib, "Comctl32.lib")

我一般习惯这种方法,这样不必去修改项目属性。但是,很多朋友说过,在Win 7以后的系统,依然没有成功,我也尝到了调用失败的“甜头”,我一直在想,这是为什么呢?

于是,我又试了另一种方法,就是用LoadLibrary加载Comctl32.dll,然后通过函数指针去调用它:

typedef LRESULT (WINAPI * pLoadICMT)(.......);

但结果还是没成功,GetProcAddress返回的地址为0,又一次尝到了失败带来的“刺激”感。

 

直到某一天,我在写某程序时,从上一文中大家都看到,那个按钮的视觉风格和Win9x/2000差不多,似乎没有XP那种充满美学水准的效果。其实,这是因为我们的程序没有启用视觉效果,默认情况下,使用版本5中的控件,而要有XP以上的风格,是在版本6的控件内库中才有。

当然方法可以很多人都知道,就是定义一个用于视觉效果的清单文件,本质是XML格式。不过我用的开发工具是VS 2005之后的版本,就不用弄个XML文件那么麻烦了,直接到MSDN上复制粘贴这段代码放到你的代码文件(.cpp)中,就是这个,直接抄过来就行了,适当的时候,要巧用MSDN上的资源。

// 开启视觉效果 Copy from MSDN
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

version是版本号,要有好看的效果,记得要6,不要写用低版本的。processorArchitecture是处理器平台,x86或amd64,用*号最好,通杀。

 

真是巧啊,原来这么一来,噗,LoadIconMetric也能调用了。总的来说,就是在代码文件加上以下内容:

#include <CommCtrl.h> //包含头文件
// 导入静态库
#pragma comment(lib, "Comctl32.lib")
// 开启视觉效果 Copy from MSDN
#pragma comment(linker,"\"/manifestdependency:type='win32' \
name='Microsoft.Windows.Common-
  • 14
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值