先说明一下,按钮控件的消息有很多种,下面的列表是按钮发送的消息,其中用的比较多是BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS

/** User Button Notification Codes*/
#define BN_CLICKED          0
#define BN_PAINT            1
#define BN_HILITE           2
#define BN_UNHILITE         3
#define BN_DISABLE          4
#define BN_DOUBLECLICKED    5
#if(WINVER >= 0x0400)
#define BN_PUSHED           BN_HILITE
#define BN_UNPUSHED         BN_UNHILITE
#define BN_DBLCLK           BN_DOUBLECLICKED
#define BN_SETFOCUS         6
#define BN_KILLFOCUS        7
#endif /* WINVER >= 0x0400 */

下面的实例是说明

case BN_CLICKED:
//MessageBox(hWnd,TEXT(“按钮1被按下”),TEXT(“测试”),MB_OK);
SendMessage(hWndEdit1,WM_CLEAR,0,0);
SendMessage(hWndEdit2,WM_CLEAR,0,0);
break;
case BN_SETFOCUS:
MessageBox(hWnd,TEXT(“按钮1得到焦点”),TEXT(“测试”),MB_OK);
break;
case BN_KILLFOCUS:
MessageBox(hWnd,TEXT(“按钮1失去焦点”),TEXT(“测试”),MB_OK);
break;
完整的例子如下:

#include <Windows.h>
#include "resource.h"INT_PTR CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam)
{BOOL bRet = true;static HWND hWndEdit1 = NULL;static HWND hWndEdit2 = NULL;TCHAR pszBuffer[1024];switch(uMsg){case WM_CLOSE:EndDialog(hWnd,0);break;case WM_COMMAND:hWndEdit1 = GetDlgItem(hWnd,IDC_EDIT1);hWndEdit2 = GetDlgItem(hWnd,IDC_EDIT2);switch(LOWORD(wParam)){case IDC_BUTTON1:switch(HIWORD(wParam)){case BN_CLICKED://MessageBox(hWnd,TEXT("按钮1被按下"),TEXT("测试"),MB_OK);SendMessage(hWndEdit1,WM_CLEAR,0,0);SendMessage(hWndEdit2,WM_CLEAR,0,0);break;case BN_SETFOCUS:MessageBox(hWnd,TEXT("按钮1得到焦点"),TEXT("测试"),MB_OK);break;case BN_KILLFOCUS:MessageBox(hWnd,TEXT("按钮1失去焦点"),TEXT("测试"),MB_OK);break;}break;case IDC_EDIT1:switch(HIWORD(wParam)){case EN_MAXTEXT:break;case EN_UPDATE:GetWindowText(hWndEdit1,pszBuffer,1024);SetWindowText(hWndEdit2,pszBuffer);break;}break;case IDC_BUTTON2:switch(HIWORD(wParam)){case BN_CLICKED:SendMessage(hWndEdit1,WM_COPY,0,0);break;}break;case IDC_BUTTON3:switch(HIWORD(wParam)){case BN_CLICKED:SendMessage(hWndEdit2,WM_PASTE,0,0);break;}break;case IDC_BUTTON4:GetWindowText(hWndEdit1,pszBuffer,1024);MessageBox(hWnd,pszBuffer,TEXT("测试"),MB_OK);break;case IDC_BUTTON5:SetWindowText(hWndEdit2,TEXT("单于大爷"));break;default:return DefWindowProc(hWnd,uMsg,wParam,lParam);}break;default:bRet = FALSE;return bRet;}return bRet;
}int APIENTRY WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow)
{DialogBox(hInstance,MAKEINTRESOURCE(IDD_MAIN),NULL,DialogProc);return 0;
}

主窗口给按钮控件发送消息 BN_CLICKED和BN_SETFOCUS和BN_KILLFOUCS相关推荐

  1. delphi向控件发送消息,全选、复制、黏贴,sendmessage

    CEFWindowParent1.SetFocus ;     SendMessage(CEFWindowParent1.Handle,EM_SETSEL,0,-1);     SendMessage ...

  2. 详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息

    Windows消息的分类 1. 标准消息(队列消息)   除WM_COMMAND之外,所有以WM_开头的消息都是标准消息,如WM_MOUSEMOVE.WM_LBUTTONUP.WM_KEYDOWN.W ...

  3. 【转】详解Windows消息分类以及WM_COMMAND与WM_NOTIFY的区别,以及模拟发送控件通知消息

    转自:http://blog.sina.com.cn/s/blog_4b3c1f950100nten.html Windows消息的分类 1. 标准消息(队列消息)   除WM_COMMAND之外,所 ...

  4. qt 关闭窗口的槽函数_勇哥的VC++应用框架学习之QT(1) 信号槽、按钮控件、opencv读取显示图片...

    前言勇哥对于C语言,C++早些年有一些接触,这个系列贴子就记载一下C++应用框架的学习经验. 在写程序时,UI.基础类库.应用程序框架对于vc来讲,只能依靠MFC和QT了. 勇哥对MFC有很强的抵触, ...

  5. 【Qt】Qt 开发桌面程序 ( Qt 版本 5.14.2 | 编辑 Qt 桌面按钮控件 | 修改按钮文本 | 为按钮添加点击事件 | 系统调用 | 去掉系统调用命令窗口 )

    文章目录 一.添加按钮控件 二.修改按钮文本 三.为按钮添加点击事件 ( 弹出对话框 ) 四.为按钮添加点击事件 ( 打开记事本 ) 五.为按钮添加点击事件 ( 打开计算器 ) 六.去掉系统调用时弹出 ...

  6. 【免杀前置课——Windows编程】五、窗口控件——什么是控件、Windolws 窗口两大类、Windows标准控件/通用控件、控件响应的接收、创建窗口制作不同控件

    窗口控件 WINDOW控件 什么是控件? 控件是常见的窗口上的交互元素.例如:一个按钮,一个复选框,一个列表框等.当控件的特定功能被触发后,会主动发送消息通知父窗口,父窗口可以通过发送消息给控件控制控 ...

  7. 【第3版emWin教程】第49章 emWin6.x的AppWizard创建控件回调消息

    教程不断更新中:第3版emWin教程和ThreadX GUIX教程开工,双管齐下,GUIX更新至第28章,emWin更新至第50章(2021-10-01) - uCOS & uCGUI &am ...

  8. windows常见窗口样式和控件风格以及类样式

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_P ...

  9. Windows常见窗口样式和控件风格

    Windows常见窗口样式和控件风格 王佰营 徐丽红 一.窗口样式 WS_POPUP 弹出式窗口(不能与WS_CHILDWINDOW样式同时使用) WS_CHILDWINDOW 子窗口(不能与WS_P ...

最新文章

  1. 1.3 万亿条数据查询,知乎如何做到毫秒级响应?
  2. Python 2.7终结于7个月后,这是你需要了解的3.X炫酷新特性
  3. 如何再造一个百度贴吧兼谈如何改造园子的团队
  4. ASP.NET Forums 2.0 本地化修改(四)
  5. 如何实现在O(n)时间内排序,并且空间复杂度为O(1)
  6. Eigen库对齐问题:declspec(align('16')) 的形参将不被对齐
  7. python 拾遗(一)
  8. 使用了css3动画的元素z-index失效解决办法
  9. SpyEye on Android
  10. Mybatis常见面试题
  11. 送起来oracle,十一,送你 51 个 Oracle 常用语句~
  12. MPQ文档布局分析[转帖]
  13. 光凭求职技巧如何可以突围?
  14. 最优化理论与方法1--理论基础
  15. 使用 制作出漂亮的图表
  16. 清代国画大师孙温绘全本《红楼梦》系列数字藏品即将上线!
  17. 已解决_mssql.MSSQLDatabaseException: (2627, b“Violation of PRIMARY KEY constraint ‘PK__TM_DATA___7BDCF2
  18. 一万块人民币钱做本钱,如何在一年内合法赚一亿元?
  19. 2021-08-12_简单的处理oracle常见错误ORA-12170、ORA-12541、ORA-12514、
  20. ssm基于jsp高校选课系统毕业设计源码291627

热门文章

  1. SDCC软件开发者大会:编程马拉松团队火热招募中
  2. PHP毕业设计源代码剧影评|剧评影评系统
  3. 考研完形填空 方法技巧*
  4. 颜色混合BlendFunc用法实例总结
  5. ArchSummit讲师专访:EMC研究院资深研究员陶隽谈实时数据分析
  6. SpringMVC基础--spring MVC配置详解
  7. AVI和WAV格式文件分析
  8. 动态内存的申请和非动态内存的申请_非深户父母买社保就加分!深圳罗湖学位申请规则将调整!快算算你多少分...
  9. spread运算符_JavaScript中的Spread运算符有什么用?
  10. 新版TCGA不同癌种数据合并