首页
学习
活动
专区
圈层
工具
发布
社区首页 >专栏 >mfcgetdlgitem_mfc queue

mfcgetdlgitem_mfc queue

作者头像
全栈程序员站长
发布2022-11-17 15:47:20
发布2022-11-17 15:47:20
3810
举报

大家好,又见面了,我是你们的朋友全栈君。

代码语言:javascript
复制
CWnd::GetDlgItem

CWnd* GetDlgItem( int nID ) const;
void CWnd::GetDlgItem( int nID, HWND* phWnd ) const;

返回值:

指向给定的控件或子窗口的指针。如果没有控件具有nID给出的整数ID,则返回NULL。

返回的指针可能是临时的,不能被保存以供将来使用。

参数:

nID

指定了要获取的控件或子窗口的标识符。

phWnd

指向子窗口的指针。

GetDlgItem:根据一个对话窗或一个控件的ID,返回一个指向这个对话窗或控件的对象的指针

代码语言:javascript
复制
void CGetRadioDlg::OnButtonok() 
{
	// TODO: Add your control notification handler code here
	CString str;
	CButton* Radiobutton = (CButton*)GetDlgItem(IDC_RADIO1 + m_Radio - 1);
	Radiobutton->GetWindowText(str);
	MessageBox(str);
}

拓展:MFC项目的Resource.h文件中定义了各种资源ID,如下图单选按钮的定义

疑问:

  • 宏定义:IDC_RADIO1对应1000
代码语言:javascript
复制
CWnd* GetDlgItem( int nID ) const;

GetDlgItem(IDC_RADIO1 + m_Radio - 1)

( IDC_RADIO1 + m_Radio – 1 )是一个int型数值,也就是说在函数调用的时候会将 IDC_RADIO1 转换为 1000

但是在MFC中通过拖动添加按钮后会出现宏定义不连续的现象,即:

代码语言:javascript
复制
IDC_RADIO    1000
IDC_RADIO1    1002

是不是通过以下方式查找按钮会出现问题

代码语言:javascript
复制
void CGetRadioDlg::OnRadio1() {
	// TODO: Add your control notification handler code here
	m_Radio = 1;
}

void CGetRadioDlg::OnRadio2() {
	// TODO: Add your control notification handler code here
	m_Radio = 2;
}

void CGetRadioDlg::OnRadio3() {
	// TODO: Add your control notification handler code here
	m_Radio = 3;
}

void CGetRadioDlg::OnRadio4() {
	// TODO: Add your control notification handler code here
	m_Radio = 4;
}
代码语言:javascript
复制
GetDlgItem(IDC_RADIO1 + m_Radio - 1)

还是程序重启后,会重新修改,待验证

如果想访问控件特有的功能,则可以尝试将GetDlgItem的返回值强制转换为控件所对应的类型

代码语言:javascript
复制
CButton* Radiobutton = (CButton*)GetDlgItem(IDC_RADIO1 + m_Radio - 1);
Radiobutton->GetWindowText(str);

不推荐用这种方法来访问控件的特有功能,因为MFC对这样的用法不太支持,有些情况下会产生严重错误,而有些情况下则不起任何作用

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员栈长,转载请注明出处:https://javaforall.cn/234117.html原文链接:https://javaforall.cn

本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2022年11月3日 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 还是程序重启后,会重新修改,待验证
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档