设为首页 加入收藏

TOP

MFC动态创建控件并添加消息映射(二)
2023-07-23 13:34:17 】 浏览:58
Tags:MFC 加消息
FC)。

按钮单击

可以使用常规方法,根据ID为按钮绑定单击的消息响应函数:

ON_BN_CLICKED(IDC_BTN_START + 0, &CMFCApplication1Dlg::OnBtnClik)

如果生成的按钮比较多,一个个处理会很麻烦,需要使用批量绑定,批量绑定按钮单击消息响应函数的步骤:

  • 在对话框类的定义文件(.h文件)中声明消息响应函数OnBtnClick
afx_msg void OnBtnClick(UINT uID);

注:OnBtnClick函数的参数nID代表响应函数对应按钮控件的ID号,单个按钮可不设参数。

  • 在对话框类的函数实现文件(.cpp文件)中定义消息映射ON_COMMAND_RANGE (多个按钮),根据其输入ID分辨具体响应那个按钮。
ON_COMMAND_RANGE(IDC_BTN_START + 0, IDC_BTN_START + 3, &CMFCApplication1Dlg::OnBtnClik)

注:在函数实现文件中的消息映射部分(BEGIN_MESSAGE_MAP与END_MESSAGE_MAP之间)定义按钮控件与其消息响应函数之间的映射关系。

  • 实现消息响应函数OnBtnClick,在对话框类的函数实现文件(.cpp文件)中给出具体的按钮消息响应。
void CMFCApplication1Dlg::OnBtnClik(UINT uID)
{
	int id = uID -IDC_BTN_START;
	CString str;
	str.Format("当前ID %d", id);
	int result = MessageBox(str, TEXT("确认"), MB_YESNO);
}

组合框选中

使用ON_CBN_SELCHANGE消息:

ON_CBN_SELCHANGE(IDC_CMB_START, &CMFCApplication1Dlg::OnSelComChange)

声明消息响应函数:

afx_msg void OnSelComChange();

实现消息响应函数:

void CMFCApplication1Dlg::OnSelComChange()//选择下拉框某一列的时候得到响应
{
	for (size_t i = 0; i < pCmb.size(); i++)
	{
		if (pCmb[i]==GetFocus()) 
		{
			CString str(_T(""));//获取当前下拉框的值 
			pCmb[i]->GetLBText(pCmb[i]->GetCurSel(), str);//获取CComBox下拉框当前选中的值			
			MessageBox(str, TEXT("确认"), MB_OK);
		}
	}	
}

疑问:明明对一个控件ID映射了消息响应函数,但后面的组合框控件都能进入OnSelComChange() 函数,后面有时间再研究。

首页 上一页 1 2 下一页 尾页 2/2/2
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇recompile with -fPIC 下一篇<三>使用类模板实现STL Vec..

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目