mfcgetdlgitem_mfc queue

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

大家好,又见面了,我是你们的朋友全栈君。如果您正在找激活码,请点击查看最新教程,关注关注公众号 “全栈程序员社区” 获取激活教程,可能之前旧版本教程已经失效.最新Idea2022.1教程亲测有效,一键激活。

Jetbrains全家桶1年46,售后保障稳定

CWnd::GetDlgItem

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

Jetbrains全家桶1年46,售后保障稳定

返回值:

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

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

参数:

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

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

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,如下图单选按钮的定义

mfcgetdlgitem_mfc queue

疑问:

  • 宏定义:IDC_RADIO1对应1000
CWnd* GetDlgItem( int nID ) const;

GetDlgItem(IDC_RADIO1 + m_Radio - 1)

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

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

IDC_RADIO    1000
IDC_RADIO1    1002

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

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;
}
GetDlgItem(IDC_RADIO1 + m_Radio - 1)

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


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

CButton* Radiobutton = (CButton*)GetDlgItem(IDC_RADIO1 + m_Radio - 1);
Radiobutton->GetWindowText(str);

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

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

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

赞 (0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • ubuntu安装goland_ubuntu安装kali工具集

    ubuntu安装goland_ubuntu安装kali工具集1下载地址可以从go语言中文网下载最新的Linux包,地址如下:https://studygolang.com/dl/golang/go1.17.3.linux-amd64.tar.gzhttps://studygolang.com/dl/golang/go1.17.3.linux-amd64.tar.gz2安装进入home目录,使用wget下载子并解压,修改名字,然后创建链接(这个目的是方便后续切换golang版本的时候,只需要修改链接即可),脚本如下:cd~wgethttps

    2022年10月10日
  • Java8中String.join方法,让我们的代码更优美

    Java8中String.join方法,让我们的代码更优美强烈推荐一个大神的人工智能的教程:http://www.captainbed.net/zhanghan【前言】距Java8(14年3月19日)发布马上就四年了;相信接触过java8的人,会对它的很多新的特性新的方法有感觉;自然我也不例外;今天就一起给大家分享一个java8中的方法。【善用新语法,让代码更优美】一、简洁:最近自己在做项目的时候学习到很多技巧…

    2022年6月4日
  • Kubeadm 安装

    Kubeadm 安装

    2022年3月5日
  • 直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理

    直方图均衡化的原理及实现途径_请简述图像直方图均衡的原理直方图均衡化的原理及实现一、直方图1.1直方图的概念在图像处理中,经常用到直方图,如颜色直方图、灰度直方图等。图像的灰度直方图就描述了图像中灰度分布情况,能够很直观的展示出图像中各个灰度级所占的多少。图像的灰度直方图是灰度级的函数,描述的是图像中具有该灰度级的像素的个数:其中,横坐标是灰度级,纵坐标是该灰度级出现的率。如下图所示1.2直方图的性质①直方图反映了图像中的灰度分布规律。它描述每个灰度级具有的像素个数,但不包含这些像素在图像中的位置信息。图像直方图不关心像

    2022年8月30日
  • CentOS 5.8 Zimbra邮件系统安装与配置

    CentOS 5.8 Zimbra邮件系统安装与配置

    2021年5月11日
  • pycharm用anaconda的Python_pycharm配置anaconda环境

    pycharm用anaconda的Python_pycharm配置anaconda环境先附上链接两个,是我自己用的pycharm链接:https://pan.baidu.com/s/1O5PixlPNpUw3RcxYbHHdBQ密码:vgjy下面是我自己用的Anaconda,版本是Anaconda2-5.0.1-Windows-x86_64链接:https://pan.baidu.com/s/16jiiYDtH9pVZTz6Ix7FeIQ密码:0yzmAnaco…

    2022年8月27日

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号