Windows程序设计之子窗口设计
来源:互联网 发布:百视通移动第三方软件 编辑:程序博客网 时间:2024/04/28 15:52
一、子窗口基础知识
1.利用Windows预定义的窗口类(窗口过程函数),建立标准的子窗口。
2.用户只须捕获WM_COMMAND消息,来响应子窗口的动作。
二、按钮类
1.按钮类:button
2.一般是在应用程序窗口过程函数处理WM_CREATE消息时创建按钮,
hButton=CreateWindow(TEXT("button"), //按钮类名称,Button也可以?
TEXT("确定"), //按钮显示文字
WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
200,
200,
50,
30,
hwnd,//父窗口句柄
(HMENU)0,//按钮id
((LPCREATESTRUCT)lParam)->hInstance,//实例
NULL
);
3.子窗口向父窗口发送消息
WM_COMMAND消息含义
LOWORD(wParam):子窗口ID
HIWORD(wParam):通知码
lParam :子窗口句柄
4.其它设置
(1)更改按钮文本
SetWindowText(hwnd,newButtonText);
(2)设置按钮是否可见
创建按钮子窗口时,若指定按钮风格有WS_VISIBLE,则CreateWindow后就会产生按钮子窗口;若未指定,则须在CreateWindow后加:
ShowWindow(hwndchild,SW_SHOWNORMAL);//正常显示按钮子窗口
ShowWindow(hwndchild,SW_HIDE);//隐藏子窗口
(3)设置按钮是否可用
EnableWindow(hwndChild,FALSE);//设置按钮不可用
EnableWindow(hwndChild,TRUE);//设置按钮可用
三、静态类
1.静态文本类:static
2.创建静态文本子窗口
hStaticText=CreateWindow("static",
TEXT("文本标签"),
WS_CHILD|WS_VISIBLE|SS_LEFT,
100,
200,
60,
20,
hwnd,
(HMENU)2,
((LPCREATESTRUCT)lParam)->hInstance,
NULL
);
四、编辑类
1.编辑类:edit
2.创建编辑子窗口
hEdit=CreateWindow(TEXT("edit"),
TEXT("编辑框"),
WS_CHILD|WS_VISIBLE|ES_LEFT,
100,
400,
40,
20,
hwnd,
(HMENU)3,
((LPCREATESTRUCT)lParam)->hInstance,
NULL
);
3.获取编辑框输入内容:
GetWindowText(hEdit,szbuffer,100);
如:
GetWindowText(hEdit,szbuffer,100);
MessageBox(NULL,szbuffer,"输入内容",MB_OK|MB_ICONINFORMATION);
五、列表框类
1.列表框类:listbox
2.创建列表框子窗口
hListBox=CreateWindow(TEXT("listbox"),
TEXT("语文"),
WS_CHILD|WS_VISIBLE|LBS_STANDARD,
250,
250,
60,
50,
hwnd,
(HMENU)5,
((LPCREATESTRUCT)lParam)->hInstance,
NULL
);
3.消息处理
(1)当列表框中的某项被选中时,列表框向父窗口发送WM_COMMAND消息,父窗口可确定选中的是哪一项。消息含义与按钮、编辑框的相同。
LOWORD(wParam) 子窗口ID
HIWORD(wParam) 通知码
lParam() 子窗口句柄
(2)可以通过调用SendMessage给列表框窗口过程函数发送信息来操作列表框内容
4.常见操作:
(1)添加列表项
SendMessage(hListBox,LB_ADDSTRING,0,(LPARAM)szString);
其中,szString为列表项名称
如:
GetWindowText(hEdit,szbuffer,100);
SendMessage(hListBox,LB_ADDSTRING,0,(LPARAM)szbuffer);
(2)获得当前选中列表项索引
SendMessage(hListBox,LB_GETCURSEL,0,0);
若当前有列表项被选中,则返回其索引(第一个列表项索引为0!);否则返回LB_ERR(-1).
如:
index=SendMessage(hListBox,LB_GETCURSEL,0,0);
(3)删除某列表项
SendMessage(hListBox,LB_DELETESTRING,index,0);
删除索引为index的列表项.
(4)清空列表
SendMessage(hListBox,LB_RESETCONTENT,0,0);
(5)获得列表框列表项个数
SendMessage(hListBox,LB_GETCOUNT,0,0);
(6)获得指定索引列表项名称
iLength=SendMessage(hListBox,LB_GETTEXT,index,(LPARAM)szBuffer);
- Windows程序设计之子窗口设计
- 《Windows程序设计》之子窗口
- windows程序设计之鼠标之子窗口
- windows程序设计 创建窗口
- windows程序设计 显示窗口
- API之子窗口创建
- 子窗口控件 -windows程序设计
- Windows程序设计:第一个窗口
- 子窗口控件 -windows程序设计
- 子窗口控件 -windows程序设计
- windows程序设计--窗口与消息
- Windows程序设计 窗口和消息
- windows程序设计 注册窗口类
- windows程序设计 窗口过程函数
- Windows程序设计--窗口与消息
- Windows程序设计-窗口和消息
- Windows程序设计-子窗口控件
- API之子窗口创建 (转)
- XAPool连接池源码分析
- (1) 创建新图层
- 自己写的josephus环的数组实现
- 内部排序算法的C/C++实现
- 虚析构函数
- Windows程序设计之子窗口设计
- 从ntoskrnl文件中直接查找ssdt各个参数
- windows上调试win32子系统的方法
- C语言--迭代器的实现。
- 如何关闭WFP
- 读书笔记《Mastering Regular Expressions》(一) 完整域名的正则表达式
- MSP430全系列博西德科技已正式提供全面供货
- 修改PE文件版本信息(简单演示)
- 使用Spring MVC表单标签一