Win32开发入门(12) 使用控件——单选按钮

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

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

不知道大家有没有调用过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-Controls' version='6.0.0.0' \
processorArchitecture='*' publicKeyToken='6595b64144ccf1df' language='*'\"")

这问题干掉了,开始今天的吹牛大行动。

单选按钮,是的,在WinForm里面你肯定知道, RadioButto,复选框就是CheckBox。不过那个时候.NET还没那么猛,那个时代,就是玩VB6,所以我知 道VB里面,单选按钮叫Option吧。

然后找遍了Win32的控件库,怎么没见Radio和CheckBox,于 是,我陷入了万分痛苦之中。不久后阅读MSDN文档,我就明白了,其实这两个玩意儿都是BUTTON类的, 只是应用了不同的style罢了。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索文件
, 控件
, 按钮
, radiobutto...
, ccf
, 版本
, 效果
, 视觉
单选效果
ios单选按钮控件、单选按钮控件、access单选按钮控件、单选按钮控件的使用、单选按钮,以便于您获取更多的相关知识。

时间: 2024-11-02 10:40:48

Win32开发入门(12) 使用控件——单选按钮的相关文章

AppleWatch开发入门五——菜单控件的使用

AppleWatch开发入门五--菜单控件的使用 一.简介         菜单也是WatchOS中一个重要的交互方式,限于Watch的屏幕尺寸,若将所有用户交互控件都紧密的排列进展示的UI中,那样难免会使用户操作困难,也会影响界面布局的简洁美观.因此,WatchOS的菜单机制是一层覆盖在屏幕上的交互界面,有如下的特点: 1.菜单是内置于InterfaceController中的,不需显式处理,只需对齐菜单项进行添加设置. 2.菜单最多可以容乃四个选项按钮. 3.通过重按可以呼出和隐藏菜单. 二

Windows 8风格应用开发入门 十七 布局控件

Panel类是开发Windows 8 Store应用中一个重要类,它在Windows 8 Store应用布局系统中扮演非常重要角色. Panel可以承载多个子元素,面板类可以把子元素存放在栈中.或网格里面.或把子元素停靠在其边缘等. Panel类自身是一个抽象类,下面是Panel类的层次结构: Windows 8 Store应用中包含的三个标准布局控件:Canvas(通常在常规布局中,尽量不要考虑使用Canvas,不过在某些特殊情况下,使用Canvas还是非常方便的).Grid(它是大多数常规布

Android开发之瀑布流控件的实现与使用方法示例

本文实例讲述了Android开发之瀑布流控件的实现与使用方法.分享给大家供大家参考,具体如下: public class FlowLayout extends ViewGroup { /**行里子view之间的行距离*/ public int mHorizontolSpace = Util.getDimen(R.dimen.top_padding); /**行里子view之间的垂直距离*/ public int mVerticalSpace = Util.getDimen(R.dimen.top

Win32开发入门(10) 绘图(C)

今天我们来欣赏一下用于填充图形的函数,当然我不会逐个去介绍,因为我们参考MSDN直接套参数 就可以了. SetDCBrushColor函数有必要扯一下,它的声明如下: COLORREF SetDCBrushColor( __in HDC hdc, __in COLORREF crColor ); 第二个参数,通过RGB宏产生COLORREF传进去就可以了,比如这样: SetDCBrushColor(ps.hdc,RGB(211,254,41)); 但是,如果只是调用这个函数,你会发现 在绘图的时

Win32开发入门(8) 绘图(A)

从本篇开始,我就不吹牛皮,那就吹吹兔皮吧.说说与绘图有关的东东. 要进行绘制,首先 要得到一个DC,啥是DC呢?按字面翻译叫设备上下文,也可以翻译为设备描述表,它主要指API为我们 封装了一些与显示设备相关的交互操作,我们这里说的是图形的绘制,自然指的是显卡.当然,对于同 一客观事物,世界上并不存在唯一的理解方案,技术上的东西最终拿来用的,不应该有硬性的去统一. 我们之中的很多人,最大的失败在于,人家说要这样理解他就毫不怀疑地这样理解,权威人士说要这样 这样,他就不经过大脑思考地跟着那样那样.

Win32开发入门(3) 窗口的重绘

我们今天来吹一下关于窗口重绘的事情,在开始吹牛之前,我们先用上一篇博文中说到的方法写一 个简单的Win32应用程序.代码如下: #include <Windows.h> //先声明一下消息处理函数 LRESULT CALLBACK MyWindowProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam); // 入口点 int CALLBACK WinMain( HINSTANCE hInstance, HINSTANCE hPrvInst

一起学Windows Phone7开发(十三.八 ListBox控件)

在Phone7中去掉了listview控件,就只有这个listbox控件,不过这个控件功能非常强大,完全可以实现listview的功能. 因为这个控件也相当于一个容器,可以通过ListItem来组合多个控件而得到不同功能的list. Xaml: <ListBox Grid.Row="1" Height="567" HorizontalAlignment="Left" Margin="12,53,0,0" Name=&qu

一起学Windows Phone7开发(十三.三 输入控件)

在Phone7中主要的输入控件其实就有两个,一个是textbox,另一个就是password控件.这两个控件中尤其是TextBox控件有了很多新特性. 一.PasswordBox:密码框控件,用于输入自定义的遮罩字符的输入控件. <PasswordBox Grid.Row="1" Height="72" HorizontalAlignment="Left" Margin="12,284,0,0" Name="p

win32 sdk 如何创建webbrown控件

问题描述 win32 sdk 如何创建webbrown控件 win32 sdk 如何创建webbrown控件 解决方案 01.HMODULE hRichEditDll = NULL; 02. 03.WM_CREATE: 04.{ 05. hRichEditDll = LoadLibrary(_T("RICHED20.dll")); 06. HWND hRichEdit = CreateWindowEx(WS_EX_CLIENTEDGE, 07. _T("RichEdit20W

arcgis-ArcGis二次开发,使用ArcScene控件,测距问题?

问题描述 ArcGis二次开发,使用ArcScene控件,测距问题? ArcGis二次开发中,需要测量图层上两点的距离.使用ArcMap控件,测距可以使用ControlsMapMeasureTool,使用ArcGlobe控件,测距可以使ControlsGlobeMeasureTool.但是ArcScene控件没有想对应的工具类,各位GIS大牛有好的解决方法吗? 解决方案 CAD控件:易语言使用控件二次开发入门 解决方案二: http://blog.sina.com.cn/s/blog_81084