在 DIALOG里定义工具栏消息
来源:互联网 发布:知乎的功能 编辑:程序博客网 时间:2024/05/17 18:47
在 DIALOG里定义工具栏消息
- 小弟也只是初学MFC, 参考别人源码看不懂所记下
- 记录一下自己被困扰许久的问题
- 这也是自己第一篇博客,写得不好请多包含
- 在 DIALOG里定义工具栏消息
- 0x00 被困扰的消息
- 0x01 解决消息
- 0x02 初始化完成以后开始定义消息
- 0x03 在 DIALOG 头文件中添加消息处理函数
- 0x04 在 DIALOG 源文件中添加代码
- 0x05至此添加工具栏消息映射完毕
0x00 被困扰的消息
在下载了一个开源MFC代码,发现工具栏消息自己定义的,找了老半天没找着是怎么定义,过程心酸。。此处不多详细说,下面详细介绍如何定义工具栏消息。
0x01 解决消息
在 DIALOG类里面创建一个 CToolBar 成员变量,我将他命名为 : CToolBar m_Toolbar; 有了这个成员变量之后就可以创建一个创建工具栏了。 找到 OnInitDialog() 初始化函数, 下面代码为 OnInitDialog() 函数实现
CDialogEx::OnInitDialog(); // 将“关于...”菜单项添加到系统菜单中。 // IDM_ABOUTBOX 必须在系统命令范围内。 ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX); ASSERT(IDM_ABOUTBOX < 0xF000); CMenu* pSysMenu = GetSystemMenu(FALSE); if (pSysMenu != NULL) { BOOL bNameValid; CString strAboutMenu; bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX); ASSERT(bNameValid); if (!strAboutMenu.IsEmpty()) { pSysMenu->AppendMenu(MF_SEPARATOR); pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu); } } // 设置此对话框的图标。 当应用程序主窗口不是对话框时,框架将自动 // 执行此操作 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 //定义消息 UINT Msg = 103; m_ToolBar.Create(this); m_ToolBar.SetButtons(&Msg, 1); m_ToolBar.SetButtonText(0, "测试");
0x02 初始化完成以后开始定义消息
- 找到 Resouce.h 这个头文件
- 把刚才定义消息的 103 做个宏定义;
- 把这段代码添加进去 #define IDB_TEST 103
- 保存关闭头文件
0x03 在 DIALOG 头文件中添加消息处理函数
protected: HICON m_hIcon; // 生成的消息映射函数 virtual BOOL OnInitDialog(); afx_msg void OnSysCommand(UINT nID, LPARAM lParam); afx_msg void OnPaint(); afx_msg HCURSOR OnQueryDragIcon(); afx_msg void OnBUTTONTest(); //这个就是我添加的消息处理函数 DECLARE_MESSAGE_MAP()
0x04 在 DIALOG 源文件中添加代码
BEGIN_MESSAGE_MAP(CtestDlg, CDialogEx) ON_WM_SYSCOMMAND() ON_WM_PAINT() ON_WM_QUERYDRAGICON() ON_COMMAND(IDB_TEST , OnBUTTONTest) //在这里添加关联消息处理函数END_MESSAGE_MAP()void CtestDlg::OnBUTTONTest(){ //在这里添加自己需要处理的消息代码 }
0x05至此添加工具栏消息映射完毕
0 0
- 在 DIALOG里定义工具栏消息
- 在dialog里 使用 butterknife
- 在对话框里使用真彩色工具栏
- 如何在Word工具栏里添加MathType
- MFC在工具栏实现提示消息
- mfc dialog 添加工具栏
- dialog工具栏初始化源码
- insetdrawable在dialog里的用法
- 在jsp里定义函数
- 在nodejs里定义全局变量
- VC里在工具栏添加COMBOBOX的方法
- 工具栏获取回车键消息
- jquery easyui dialog 在iframe 标记的使用。可在dialog 里打开一个页面
- jquery easyui dialog 在iframe 标记的使用。可在dialog 里打开一个页
- 定义不一定在相应的cpp里
- MEDIASUBTYPE_MPEG2_TRANSPORT在哪个文件里被定义?
- wordpress 在 plugin 里定义一个 widget
- 宏定义放在结构体里
- Linux内核的总结认识
- Android点击EditText文本框之外任何地方隐藏键盘的解决办法
- 详解 RHEL7.1 yum源配置与软件安装
- java之旅之设计与分析
- 17 - 02 - 02 计算机网络(23)(TCP的拥塞控制)
- 在 DIALOG里定义工具栏消息
- 圆形头像处理
- 【C++】学习笔记二十四——?:运算符
- Leetcode—283Move Zeroes
- 正则表达式-量词
- 一大波考试即将到来
- C# using 三种使用方式
- 程序员的自我修养
- openstack源码分析(一)------------如何入手