首先我们看下如下界面:

上面有一个弹窗,有两个控件,每个控件他们都是一个Window实例。

我们首先看下点击事件的交互代码:

//这是控件所在弹窗的事件过程函数
INT_PTR CALLBACK mydialog(HWND hwnd, UINT msgType, WPARAM wparam, LPARAM lparam) {//窗口关闭if (WM_CLOSE==msgType){EndDialog(hwnd, 0);return TRUE;}//WM_COMMAND 有三种情况 快捷键  菜单 控件信息.具体请参考官网文档else if (WM_COMMAND==msgType){//这里直接判断为控件类型即可//高字为  控件的事件比如BN_CLICKED为点击事件      WORD hWord = HIWORD(wparam);//低字为为控件idWORD lWord= LOWORD(wparam);//如果控件id为IDC_BUTTON1且事件类型为点击事件if (lWord== IDC_BUTTON1 && hWord==BN_CLICKED){OutputDebugStringA("IDC_BUTTON1  \r\n");}//概念同上else if (lWord== IDC_CHECK1 && hWord == BN_CLICKED){//得到当前控件对应的窗口实例(每个控件都是窗口实例)HWND child = GetDlgItem(hwnd, IDC_BUTTON1);//模拟发送一个点击事件给IDC_BUTTON1SendMessageA(child, BM_CLICK, 0, 0);OutputDebugStringA("IDC_CHECK1 \r\n");}return TRUE;}return FALSE;
}

上面的代码寓意:
idIDC_BUTTON1 的控件触发点击事件后打印输出语句"IDC_BUTTON1 \r\n"
idIDC_CHECK1 的控件触发点击事件后 手动发出一个点击事件给IDC_BUTTON1 控件

我们看下另一个案例 按下按钮获取文本编辑框内容:

方式一:

INT_PTR CALLBACK mydialog(HWND hwnd, UINT msgType, WPARAM wparam, LPARAM lparam) {if (WM_CLOSE==msgType){EndDialog(hwnd, 0);return TRUE;}else if (WM_COMMAND==msgType){WORD hWord = HIWORD(wparam);WORD lWord= LOWORD(wparam);if (lWord== IDC_BTN_GET_MSG && hWord==BN_CLICKED){TCHAR tchar[30];HWND child = GetDlgItem(hwnd, IDC_EDIT1);//这个函数本质发送一个消息给系统,系统会把字符串赋值到tachrSendDlgItemMessageA(hwnd, IDC_EDIT1, WM_GETTEXT, sizeof(tchar), (LPARAM)tchar);OutputDebugStringA("IDC_BUTTON1  \r\n");MessageBoxA(hwnd, tchar, "", MB_OK);}return TRUE;}return FALSE;
}

方式二:

INT_PTR CALLBACK mydialog(HWND hwnd, UINT msgType, WPARAM wparam, LPARAM lparam) {if (WM_CLOSE==msgType){EndDialog(hwnd, 0);return TRUE;}else if (WM_COMMAND==msgType){WORD hWord = HIWORD(wparam);WORD lWord= LOWORD(wparam);if (lWord== IDC_BTN_GET_MSG && hWord==BN_CLICKED){TCHAR tachr[30];HWND child = GetDlgItem(hwnd, IDC_EDIT1);//这个函数本质发送一个消息给系统,系统会把字符串赋值到tachrGetWindowTextA(child, tachr, sizeof(tachr));OutputDebugStringA("IDC_BUTTON1  \r\n");MessageBoxA(hwnd, tachr, "", MB_OK);}return TRUE;}return FALSE;
}

WIN32 控件基础相关推荐

  1. Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它

    Delphi XE2 之 FireMonkey 入门(35) - 控件基础: TFmxObject: 其它 TFmxObject 增加了 TagObject.TagFloat.TagString, 算 ...

  2. win32 控件的创建和消息响应

    win32 控件的创建和消息响应 1. 控件的创建 控件的创建和窗口创建是一样的,例如: //-------- 创建窗口或控件 ---- hwnd = CreateWindow("butto ...

  3. EasyX 如何使用 Win32 控件

    EasyX 原本是用不了 Win32 控件的,但是可以用 hieasyx,一个基于 EasyX 的扩展库,这个库的 github 链接是: https://github.com/zouhuidong/ ...

  4. Spread for WinForms 电子表格控件基础视频教程-王继飞-专题视频课程

    Spread for WinForms 电子表格控件基础视频教程-23145人已学习 课程介绍         Spread for WinForms 电子表格控件基础视频教程 课程收益      讲 ...

  5. 常用MFC控件基础使用(Edit Button Check Combo Tree 显示位图 控件大小自适应、线程、右键菜单、控件调整移动、MFC背景)

    常用MFC控件基础使用 1.Edit Control 2.Button控件 3.Check控件 4.Combo Box 5.Tree 控件 5.快捷键设置 6 显示缓冲区位图 7 窗口自适应大小 8 ...

  6. Win32 GUI编程之二-------------使用Win32控件(ListView)

    // Windows 头文件: #include <windows.h>// C 运行时头文件 #include <stdlib.h> #include <malloc. ...

  7. Delphi XE2 之 FireMonkey 入门(37) - 控件基础: TControl 概览

    { TControl } publicconstructor Create(...); override; //destructor Destroy; override; //procedure Ad ...

  8. C# chart控件基础使用

    基本介绍:chart(图表) 功能:主要用来绘制折线图,柱状图与饼状图,也可达到动态效果(例如作示波器): 需要说明 一个chart可以包含多个chartArea. chartArea是具体的坐标区域 ...

  9. [00004]-[2015-07-16]-[00]-[VC++ 开发Activity控件基础]

    Visual C++是开发ActiveX控件的强大工具,它的特点是开发周期短.便于使用,因此它已经成为开发ActiveX控件的主要工具之一.Visual C++集成开发环境,使用了微软自己的类库MFC ...

最新文章

  1. matlab 边缘光滑,如何使用matlab来平滑图片的边缘
  2. VTK:细胞定位器可视化用法实战
  3. YEAH!!距离拿回touch4倒计时:7days
  4. linux bond配置步骤,七种bond模式说明
  5. python按条件拆分列表元素_Python按多个元素和条件拆分列表
  6. python爬虫学习研究
  7. 天正安装autocad启动失败_天正cad启动失败
  8. 图解大数据 | 大数据分析挖掘-Spark初步
  9. 2011新版工业技术 中文核心期刊目录总览
  10. ubuntu运行迅雷极速版
  11. TCP的乱序和丢包判断(附Reordering更新算法)-实例case
  12. mysql中计算最大回撤_基金最大回撤算例(Java 1.8)
  13. ip.php是什么意思,有人频繁试探云主机的 ip_js. PHP 是什么操作?
  14. 使用nexus-3.0.2-02-win64搭建自己的Maven nexus私服
  15. 基于python LDA模型的英文推特邮件主题分析 完整数据+代码 可直接运行
  16. 【Java面试题】常规Java面试题分享
  17. 正则表达式强密码验证: 8-16个字符,不包含空格,必须包含数字,字母或字符至少两种
  18. 练习题|文件操作和函数
  19. 电子技术——负反馈特性
  20. 使用UTF8编码将Excel转换为CSV

热门文章

  1. 【】已定,10月29日无限火力、乱斗2019开放时间
  2. UVA - 12563 劲歌金曲(DP 01背包)
  3. JQuery(李江南)
  4. jQuery源码解析之replaceWith()/unwrap()
  5. 《前端》--jQuery  - replaceWith() 方法
  6. vue-pdf 问题记录
  7. notepad运行python不能显示输出_用Notepad++运行python怎么什么都没有呢
  8. Cosmos 费用代币——介绍 Photon
  9. python kivy ios_python – kivy iOS部署错误
  10. java导出excle表格数据,java导出Excel表格