控件是指对数据和方法的封装。控件可以有自己的属性和方法,其中属性是控件数据的简单访问者,方法则是控件的一些简单而可见的功能、控件创建过程包括设计、开发、调试(就是所谓的3Ds开发流程,即Design、Develop、Debug)工作, 然后是控件的使用。
总体框架如下,控件代码在WM_COMMAND中替换
1 | #include <Windows.h> |
复选框
获取被选中的复选框
1 | //检查被选中的复选框 |
设置复选框被选中
1 | //设置复选框被选中 |
单选框
1 | HWND hRadio1 = GetDlgItem(hWnd, IDC_RADIO1); |
单选框时有一个问题,对于所有的Radio选项,只有一个组,如果需要用到两组就会出现问题。所以我们需要将Radio分组:
ctrl+d 令同一组的Radio序号连续
每一组的第一个Radio的Group属性设置为True,就可以完成分组
静态图片
拖拽一个Picture Control控件,修改Type为Bitmap
添加资源,导入Bitmap(这里不能用QQ截图后保存的图片,应该使用画图
中的256色位图bmp
类型的图片)
添加时要把文件类型改成所有文件,否则找不到图片
注意要修改pic控件的控件ID,默认的IDC_STATIC
会报错
1 | HINSTANCE hInstance = GetModuleHandle(NULL); |
下拉框(ComboBox)
要修改下拉框高度应修改倒三角的高度
1.添加选项
1 | TCHAR Buf[10][10] = { |
2.获取选项
1 | HWND hCombo = GetDlgItem(hWnd, IDC_COMBO1); |
进度条
进度条控件Progress Control
1 | static int n = 0; |
滑块
滑块控件Slider Control
滑块在被拖动的时候,会给父窗口发送WM_HSCROLL
消息或WM_VSCROLL
消息
检测滑块位置:
1 | HWND hSlider = GetDlgItem(hWnd, IDC_SLIDER1); |
nLoc
中保存的即为滑块的值
设置滑块位置:
1 | HWND hSlider = GetDlgItem(hWnd, IDC_SLIDER1); |
列表框控件
列表框控件List Control
设置View
设置为Report
1 | //添加字段名 |
附加内容:
1 | //修改hList为整行选中 |
处理List_View的WM_NOTIFY消息:
1 | case WM_NOTIFY: |