Win32 Windows编程 十二
一、对话框
1、对话框的分类
2、对话框的基本使用方式
3、对话框资源
4、有模式对话框的使用
5、 无模式对话框的使用
5.1 加入对话框资源
5.2 定义窗体处理函数
BOOL CALLBACK DialogProc(
HWND hWnd,
UINT UMsg,
WPARAM wParam,
LPARAM lParam
)
5.3 创建对话框
HWND CreateDialog(
HINSTANCE hInstance, // handle to module
LPCTSTR lpTemplate, // dialog box template name
HWND hWndParent, // handle to owner window
DLGPROC lpDialogFunc // dialog box procedure
);
返回值是创建好的对话框窗体句柄
5.4 显示对话框
ShowWindow
5.5 关闭对话框
EndDialog
5.6 与有模式对话框相比
创建函数:有模式创建对话框 DialogBox
无模式对话框; CreateDialog
程序运行方式:有模式对话框堵塞。禁止其它窗体输入。
无模式对话框会立马返回让主程序继续运行
6 对话框消息
WM_INITDIALOG消息。用途类似于WM_CREATE消息,能够再对话框创建完毕后 进行数据初始化
他与WM_CREATE不同的是,WM_INITDIALOG消息会在对话框资源模板上的全部子控件(button等)创建完毕后再发送给对话框窗体处理函数
wParam - 当前接受输入焦点子控件窗体句柄
lParam - 创建时附带的參数
7 对话框和普通窗体的对照
7.1 创建方式不同
普通窗体 CreateWindow/Ex
对话框: DialogBox/CreateDialog
7.2 消息
普通窗体:会收到WM_CREATE
对话框:
WM_INITDIALOG
7.3 关闭方式
普通窗体 : DestroyWindow等
对话框: EndDialog
二 子控件
1 由 Windows系统定义的窗体类型能够提供
对应的功能。包含button。文本编辑框, 静态框
2 空间的创建
都能够使用CreateWindow/CreateWindowEx创建, 并获取到空间HWND。
创建时每一个子控件都要有对应的ID号,
ID号尽量要求不反复。
1.3 控件的消息
子控件和父窗体(一般窗体或者对话框)的交换都是通过消息完毕的。假设子窗体状态发生变化,子窗体会向父窗体发送
对应的消息,
一般父窗体会使用SendMessage向子窗体发送消息。同一时候父窗体响应子窗体发送的消息一般在WM_COMMAND中进行处理
三 静态框
1 静态框的创建
窗体类的名称 - STATIC, 用于窗体上显示文字等,假设使用SS_ICON、SS_BITMAP风格能够显示ICON和BITMAP
文本静态框 - 创建时使用SS_SIMPLE就可以
ICON静态框 - 创建时使用SS_ICON, 而且将静态框的窗体名称设置成相应的ICON的资源ID号。比如 “#101”
2 静态框的命令响应
2.1 惊天狂要加入SS_NOTIFY风格
2.2
WM_COMMAND 进行处理
WPARAM - HIWORD 命令ID
LOWORD 静态框的窗体ID
LPARAM - 静态框创库句柄
3 静态框相关消息
调用SendMessage函数向空间发送消息
如: STM_SETICON消息改动控件显示图标
SendMessage( hStatic, STM_SETICON, (WPARAM)hIcon, 0 );
其它:
GetDlgItem 从窗体中获取指定ID的子控件的窗体句柄
四 button
1 button的分类
依据创建button时使用的风格:
1.1 下压式button PUSH_BUTTON
正常下压式button BS_PUSHBUTTON
三态下压式button BS_3STATE
1.2 分组式button
BS_GROUPBOX
1.3 CheckBoxbutton 多选button
BS_CHECKBOX
1.4 单选button Radio Box
BS_RADIOBUTTON
2.下压式button的使用:
2.1 创建button
创建时使用BUTTON
2.2 响应button的点击命令消息
WM_COMMAND
2.3 通知消息消息处理
SendMessage
Win32 Windows编程 十二的更多相关文章
- Win32 Windows编程 十
一 Windows画图 1 图形绘制 1.1 图形绘制的方式 获取到画图的句柄,设备描写叙述符(DC).使用对应的画图API.在设备上绘制图形 1.2 颜色 RGB,每种颜色8位,共24位颜色 32位 ...
- 面向对象编程(十二)——final关键字
final关键字 Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量. 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和 ...
- win32 socket编程(二)——TCP/IP
一.大端.小端法定义 1.1小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端. (主机字节顺序) 1.2 大端法(Big-Endian ...
- Windows Phone 十二、设计器同步
在设计阶段为页面添加数据源 Blend或者VS的可视化设计器会跑我们的代码,然后来显示出来,当我们Build之后,设计器会进入页面的构造函数,调用InitializeComponent();方法来将U ...
- linux网络编程之socket编程(十二)
今天继续学习socket编程,期待的APEC会议终于在京召开了,听说昨晚鸟巢那灯火通明,遍地礼花,有点08年奥运会的架势,有种冲动想去瞅见一下习大大的真容,"伟大的祖国,我爱你~~~&quo ...
- Win32 Windows编程 九
资源的使用 1 资源文件 图标 光标 字符串 菜单 加速键 对话框资源位图等等 资源脚本文件 - 扩展名为RC文件 定义了资源和相关文件等信息 资源编译器 - RC.exe 2 图标资源 ICON ...
- Unix环境高级编程(十二)线程控制
本章介绍了一个进程中多个线程之间如何保持数据的似有性及进程的系统调用如何与线程进行交互. 1.线程限制: Single Unix定义了一线线程操作的限制,和其他的限制一样,可以通过sysconf来查询 ...
- Python并行编程(十二):进程同步
1.基本概念 多个进程可以协同工作来完成一项任务,通常需要共享数据.所以在多进程之间保持数据的一致性就很重要,需要共享数据协同的进程必须以适当的策略来读写数据.同步原语和线程的库类似. - Lock: ...
- Win32 Windows编程 七
定时器消息 1. WM_TIMER 依照定时器设置的时间段,自己主动向窗体发送一个定时器消息WM_TIMER.优先级比較低 定时器精度比較低.毫秒级别.消息产生时间也精度比較低 2 .消息和函数 WM ...
随机推荐
- 补全aaz288 可能有问题的过程 P_COMPL_AAZ288
补全aaz288 可能有问题的过程: /* add by weiyongle 20160623 失地农民补足aaz288,针对早期导出的数据(只适用于江安县) 经测试:江安县 江安县个体劳动者 这个单 ...
- 第2章 Python基础语法--Hello python
第2章 基础语法 2.1 基本介绍 2.1.1 Hello python 每个语言的开始都是从”HelloWorld”开始的,我们也不例外.打开已经安装好的Python编译环境,至于Python如何安 ...
- Chrome Firefox 自定义背景色
Chrome有个自定义背景色的文件 Custom.css 默认里面什么字都没写 html, body {background-color: #e0dcc0!important;} 这个颜色 ...
- Objective-C中的类目(Category),延展(Extension)
类目和延展的作用都是为了扩展一个类. Objective-C中的类目(Category) 一.类目的定义和作用 类目也叫分类,英文Category,在没有原类.m文件的基础上,给该类添加方法. 比如, ...
- python字符串方法以及注释
转自fishC论坛:http://bbs.fishc.com/forum.php?mod=viewthread&tid=38992&extra=page%3D1%26filter%3D ...
- QQ邮箱添加公司邮箱步骤
经领导提示,发现QQ邮箱可以添加公司邮箱.这样,在有同事出差在外的时候,可以通过QQWEB邮箱,即可收发公司邮箱,不必安装邮箱客户端软件. 仅供各位同事参考使用. 1.打开QQ邮箱 2.点击其他邮箱, ...
- ZOJ 3211 Dream City DP 01背包 经典问题
题目大意:JAVAMAN 到梦幻城市旅游见到了黄金树,黄金树上每天回结出金子.已经有n棵树,JAVAMAN要停留m天,每天只能砍掉一棵树,砍掉树后就能得到树上的黄金.给定n棵树上原有的黄金a[i]和每 ...
- iOS5.1下emoji表情显示方框的解决办法
在iOS5.1的部分设备上,emoji表情无法正常显示.我测试了一下,iOS5.1(9B176 for iPhone 4)无法正常显示emoji,全部是方框iOS5.1(9B179 for iPhon ...
- Python 数据处理扩展包: pandas 模块的DataFrame介绍(创建和基本操作)
DataFrame是Pandas中的一个表结构的数据结构,包括三部分信息,表头(列的名称),表的内容(二维矩阵),索引(每行一个唯一的标记). 一.DataFrame的创建 有多种方式可以创建Data ...
- [置顶] Android开发之XML文件的解析
Android系统开发之XML文件的解析 我们知道Http在网络传输中的数据组织方式有三种分别为:XML方式.HTML方式.JSON方式.其中XML为可扩展标记语言,如下: <?xml vers ...