一、对话框

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编程 十二的更多相关文章

  1. Win32 Windows编程 十

    一 Windows画图 1 图形绘制 1.1 图形绘制的方式 获取到画图的句柄,设备描写叙述符(DC).使用对应的画图API.在设备上绘制图形 1.2 颜色 RGB,每种颜色8位,共24位颜色 32位 ...

  2. 面向对象编程(十二)——final关键字

    final关键字 Java关键字final有“这是无法改变的”或者“终态的”含义,它可以修饰非抽象类.非抽象类成员方法和变量. 在Java中,final关键字可以用来修饰类.方法和变量(包括成员变量和 ...

  3. win32 socket编程(二)——TCP/IP

    一.大端.小端法定义 1.1小端法(Little-Endian)就是低位字节排放在内存的低地址端即该值的起始地址,高位字节排放在内存的高地址端. (主机字节顺序) 1.2 大端法(Big-Endian ...

  4. Windows Phone 十二、设计器同步

    在设计阶段为页面添加数据源 Blend或者VS的可视化设计器会跑我们的代码,然后来显示出来,当我们Build之后,设计器会进入页面的构造函数,调用InitializeComponent();方法来将U ...

  5. linux网络编程之socket编程(十二)

    今天继续学习socket编程,期待的APEC会议终于在京召开了,听说昨晚鸟巢那灯火通明,遍地礼花,有点08年奥运会的架势,有种冲动想去瞅见一下习大大的真容,"伟大的祖国,我爱你~~~&quo ...

  6. Win32 Windows编程 九

    资源的使用 1 资源文件 图标 光标 字符串 菜单  加速键 对话框资源位图等等 资源脚本文件 - 扩展名为RC文件 定义了资源和相关文件等信息 资源编译器 - RC.exe 2 图标资源 ICON ...

  7. Unix环境高级编程(十二)线程控制

    本章介绍了一个进程中多个线程之间如何保持数据的似有性及进程的系统调用如何与线程进行交互. 1.线程限制: Single Unix定义了一线线程操作的限制,和其他的限制一样,可以通过sysconf来查询 ...

  8. Python并行编程(十二):进程同步

    1.基本概念 多个进程可以协同工作来完成一项任务,通常需要共享数据.所以在多进程之间保持数据的一致性就很重要,需要共享数据协同的进程必须以适当的策略来读写数据.同步原语和线程的库类似. - Lock: ...

  9. Win32 Windows编程 七

    定时器消息 1. WM_TIMER 依照定时器设置的时间段,自己主动向窗体发送一个定时器消息WM_TIMER.优先级比較低 定时器精度比較低.毫秒级别.消息产生时间也精度比較低 2 .消息和函数 WM ...

随机推荐

  1. opencv第一站:配置opencv环境(2015-12-12)

    今天论坛申请的书< OpenCV 计算机视觉编程攻略(中国工信出版社)>到了,准备研究研究机器视觉. 晚上安装了 vc2008 及 opencv 最新版 3.0.0,试了各种配置都是错误提 ...

  2. SAE部署Java应用

    链接地址:http://blog.csdn.net/shuixin536/article/details/9031335 SAE为开发者提供了非常宽松的开发环境,你甚至不用做任何特别定制就能将各种Ja ...

  3. 简单的webservice

    Hi,大家好! 今天主要和大家分享,如何搭建一个Web服务,做Android开发,不可避免会涉及到客户端开发,我们怎么样来实现一个服务端,怎么样来实现一个客户端,并相互传递数据.就算调用别人的服务时, ...

  4. PHPExcel 生成excel统计表格

    db.php为数据库操作类, $config为数据库配置,PHPExcel版本为PHPExcel_1.8.0,  php代码: $dir = dirname(__FILE__); require $d ...

  5. hdu 3641 Treasure Hunting 强大的二分

    /** 大意:给定一组ai,bi . m = a1^b1 *a2^b2 * a3^ b3 * a4^b4*...*ai^bi 求最小的x!%m =0 思路: 将ai 质因子分解,若是x!%m=0 那么 ...

  6. detain ssh server 设置(也许必须是root来安装?)

    ssh connection refused 处理方法 一般这种情况是 opens server 没安装 或 没启动 检查 openssh 是否安装 su 登录root账号,安装 openssh se ...

  7. 2014ACM/ICPC亚洲区鞍山赛区现场赛1009Osu!

    鞍山的签到题,求两点之间的距离除以时间的最大值.直接暴力过的. A - Osu! Time Limit:1000MS     Memory Limit:262144KB     64bit IO Fo ...

  8. Android:自己定义输入法(输入password时防止第三方窃取)

    对于Android用户而言.一般都会使用第三方的输入法. 但是,在输入password时(尤其是支付相关的password),使用第三方输入法有极大的安全隐患. 眼下非常多网银类的APP和支付宝等软件 ...

  9. Minimum Window Substring @LeetCode

    不好做的一道题,发现String Algorithm可以出很多很难的题,特别是多指针,DP,数学推导的题.参考了许多资料: http://leetcode.com/2010/11/finding-mi ...

  10. 【.Net基础拾遗】品味OO继承

    0X1 引言 提起面向对象,每个人都有不同的见解.但提的最多的无非就是:对象.封装.继承.多态.差不多就是这些元素构成了面向对象设计开发的基本逻辑.面向对象编程,“对象”指的是什么?这里的" ...