网上SDK编程的资料真难找,想动态加载控件,可是找不到相关资料。自己去图书馆才查到一点信息,发出来大家分享,希望给同是初学者的朋友一点帮助。
其实用于窗口的函数大多可用在控件上,只要把控件当成窗口来处理就可以了。
创建控件的代码如下:
HWND ctrl = ::CreateWindowA("button",//控件类别
"动态",//控件文本
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON ,//控件样式
0, //位置
0,//位置
100, //尺寸
20,//尺寸
hDlg,//父窗口句柄
(HMENU)50,//可以在这指定控件ID
g_hInstance,
NULL);
|
可以参照这种方式来操纵控件:
SendMessage(hwndButton, //控件句柄
BM_CLICK, //操纵方式,这里让按钮执行点击操作
NULL,NULL); //有的操纵方式要通过这两个形参传递参数
SendDlgItemMessage(hDlg, //父窗口句柄
ID_BUTTON, //控件ID
BM_CLICK, //操纵方式,这里让按钮执行点击操作
NULL, NULL); //有的操纵方式要通过这两个形参传递参数
|
用到的宏定义如 BM_CLICK 可以在 winuser.h 文件中找到。
控件类别
介绍如下:
子窗口类型
|
类名
|
描述
|
按钮
|
Button
|
创建按键按钮、单选按钮和三态按钮。
|
静态文本框
|
Static
|
显示用户不可直接编辑的文本,一般为标题。
|
滚动条
|
ScrollBar
|
滚动视图。
|
列表框
|
ListBox
|
显示具有多个子项的列表框。
|
编辑框
|
Edit
|
允许用户直接编辑文本。
|
组合框
|
ComboBox
|
与列表框类似,但多一个编辑区域。
|
button
各种按钮,可以通过控件样式来指定按钮样式
按钮风格
|
描述
|
BS_AUTOCHECKBOX
|
创建一个自动选中的复选按钮,只有复选按钮在复选框里改设置值才起作用。
|
BS_AUTORADIOBUTTON
|
创建一个自动选中的单选按钮。
|
BS_AUTO3STATE
|
创建自动的三态按钮。
|
BS_CHECKBOX
|
创建一个复选按钮。
|
BS_DEFPUSHBUTTON
|
创建默认选中的按键按钮,当用户按下Enter键时,则表示选择该按键按钮。
|
BS_GROUPBOX
|
创建按钮组合框,当创建一组单选按钮或者复选按钮时,首先需要创建该按钮组合框。
|
BS_LEFTTEXT
|
创建单选按钮或复选按钮时,指定按钮名称的文本出现在左边。
|
BS_OWNERDRAW
|
创建自画按钮,必须先创建图形资源。
|
BS_PUSHBUTTON
|
创建按键按钮。
|
BS_RADIOBUTTON
|
创建单选按钮。
|
BS_3STATE
|
创建三态按钮
|
按钮有自己特殊的消息类型。当用户选择了按钮时,它将向父窗口发送WM_COMMAND消息,这些通知消息包含在wParam的高位字节中。
按钮的通知代码如表所示。
消息取值
|
描述
|
BN_CLICKED
|
表示用户单击了该按钮
|
BN_DOUBLECLICKED
|
表示用户双击了该按钮
|
BN_HILITE
|
表示按钮显亮
|
BN_UNHlLlTE
|
取消按钮显亮
|
BN_PAINT
|
绘制按钮
|
BN_DISABLE
|
表示按钮禁活
|
BN_PUSHED
|
用户选中该按钮并按下了Enter键
|
BN_SETFOCUS
|
输入焦点转移到该按钮
|
static
创建静态文本控件
。静态文本控件的功能比较简单,可作为显示字符串,图标,位图用。
如果需要获得输入应该使用
edit 控件。