GetDlgItem(IDC_..),GetDlgItem(HWND hWnd, IDC_..)该如何使用,我在使用前者时老报错,提示应使用后者,但后者的hWnd不知如何获取。

GetDlgItem(IDC_..)是一个非静态方法,意思是你对话框内获取该控件指针,所以这里不需要获取对话框句柄,也就是说你如果在非对话框窗口里面调用这个方法就肯定会出错
GetDlgItem(HWND hWnd, IDC_..)是一个静态方法,它是一个让你指定从哪个对话框里获取控件指针
举个例子:你调用了上厕所这个函数,如果你在家里的话肯定是在自己家里上厕所,所以不需要知道在哪里上厕所(hwnd)
如果你在室外那么上厕所就一定要选一个地方(hwnd)。
如果说你上厕所的地方都不是一个房间,那么肯定会报错嘛,因为你在随地大小便,哈哈
所以你先搞清楚这两个函数的使用环境区别
再者,你问这个问题说明了你还没有搞清楚对话框是一个什么东西,建议学习一下深入浅出MFC

------------------------------------------------------------------------------------------

BOOL EnableWindow(

HWND hWnd,      // handle to window  (i)

BOOL bEnable      // flag for enabling or disabling input  (i)

);

函数功能:

该函数禁止/允许指定的窗口或控件,以便拒绝/接受鼠标和键盘的输入。禁止时,窗口不响应鼠标和按键的输入,允许时,窗口接受所有的输入。

参数:

hWnd:被禁止/允许的窗口的句柄。

bEnable:定义窗口是被允许,还是被禁止。若该参数为TRUE,则窗口被允许。若该参数为FALSE,则窗口被禁止。

返回值:

如果窗口原来是禁止态,返回值不为零;如果窗口原来是允许态,返回值为零。若想获得更多的错误信息,可调用GetLastError函数。

备注:

若窗口的允许/禁止状会发生变化,则Enblewindow函数将发送WM_ENABLE消息。若窗口已被禁止,那么它所有的子窗口也被禁止,即使他们没有被发送WM_ENABLE消息。

窗口被激活前必须处于允许态。比如,一个应用程序正在显示一个非模态对话框,并且其主窗口处于禁止状态,则应用程序必须在撤消该对话框之前将其主窗口置于允许态。否则,其他窗口将接受键盘输入焦点并被激活。若子窗口被禁止,则系统在确定由哪个窗口接受鼠标消息时将忽略该窗口。

窗口被创建时默认为允许态。若创建一个初始化为禁止状态的窗口,应用程序需要在CreateWindow或CreateWindowEX函数中指定WS_DISABLED风格。窗口在创建后,应用程序可用EnbleWindow函数来将窗口置于允许态或禁止态。

应用程序可利用此函数允许/禁止对话框中的某个控件。被禁止的控制既不能接受键盘输入,也不能被用户访问。

速查:

Windows NT:3.1及以上版本;

Windows:95及以上版本;

Windows CE:1.0及以上版本;

头文件:Winuser.h;

库文件:user32.lib。

用法:EnableWindow(GetDlgItem(hwndDlg,IDC_EDT1),TRUE);

GetDlgItem(IDC_START)->EnableWindow(FALSE);

GetDlgItem()、EnableWindow()相关推荐

  1. GetDlgItem、EnableWindow等函数在线程函数中无法使用

    将窗口指针传递给线程,或者申明一个全局窗口指针,使线程内可见. 例如: UINT TestThread(LPVOID pParam) {CMyDlg* pDlg = (CMyDlg*)pParam;p ...

  2. GetDlgItem(IDC_EDIT1)-EnableWindow(false);

    GetDlgItem(IDC_EDIT1)->EnableWindow(false); 1)GetDlgItem(IDC_EDIT1)得到IDC_EDIT1控件指针. 2)EnableWindo ...

  3. GetDlgItem、SendMessage、SetWindowText、GetWindowText、IsWindowVisible、ShowWindow、IsWindowEnabled按钮控件操作

    GetDlgItem获取窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作. WINUSERAPI HWND WINAPI GetDlgItem(__in_opt HWND ...

  4. 关于GetDlgItem、GetDlgCtrlID

    如果知道父窗口的句柄和子窗口ID,就可以得到子窗口的句柄: hwndChild = GetDlgItem(hwndParent, idChild); 当然了,如果知道了窗口的句柄,就可以用GetDlg ...

  5. VC++ MFC 多线程及线程同步(详细、全面总结!)

    更多详情:http://blog.csdn.net/whyacinth/ VC++ MFC 多线程及线程同步 关键词: MFC    多线程及线程同步                          ...

  6. 基于C++、MFC、halcon实现视觉定位【附部分源码】

    文章目录 前言 演示视频 一.项目文件目录讲解 二.MFC软件界面的设置 1.首先菜单栏的设置,按照此地方设置即可 2.CameraSetting 的相机设置页面 3.Calibration的相机标定 ...

  7. 常用MFC控件基础使用(Edit Button Check Combo Tree 显示位图 控件大小自适应、线程、右键菜单、控件调整移动、MFC背景)

    常用MFC控件基础使用 1.Edit Control 2.Button控件 3.Check控件 4.Combo Box 5.Tree 控件 5.快捷键设置 6 显示缓冲区位图 7 窗口自适应大小 8 ...

  8. 【MFC】EnableWindow:启用/禁用控件或窗口

    01.目录 目录 01.目录 02.EnableWindow函数 2.1 函数原型 2.2 参数及返回值 02.EnableWindow函数 启用和禁用控件或者窗口(设置个控件或窗口可用或不可用)可以 ...

  9. C++ + MFC 写一个程序参数修改器(五、界面交互)

    一.说明 前面几篇,已经将所有基本的工具函数写完,这一篇,主要是将所有的功能串起来,使界面和功能进行交互. 二.初始化 2.1 初始化两个listctrl 查找的list控件只需要一栏,显示地址就可以 ...

最新文章

  1. ANN:神经网络堆叠/进化故事( 从感知机到DRBN )
  2. cnblogs客户端发贴解析,Post,Get分析
  3. Perl: print @globbing.\n; 和 print @globbing; 不一样,一个已经转换为数组元素个数了...
  4. Spring-tx-TransactionAttributeSource接口
  5. ES6学习(十)—async 函数
  6. 不联网的情况下,使用 electron-builder 快速打包全平台应用
  7. vue dve环境static无法被外部访问_vue中的代理转换机制proxyTable配置项
  8. 关于OMC链接LANSWITCH
  9. 一维搜索算法——黄金分割法原理与实现
  10. 中国未来5年最“吃香”的4大行业,市场需求大,堪比铁饭碗!
  11. 一个产品从0到1的完整流程
  12. opencv 拍摄并保存照片
  13. 【QT 5 设置自定义标题栏+学习:《QT实现鼠标拖动调整窗口大小》+基础样例】
  14. JS判断对象是否为空(个人常用)
  15. cgb2111-day02
  16. poi读取excel多层表头模板写入数据并导出
  17. 孤独的宇宙中,人类是个例外吗?
  18. javaweb报修系统源码
  19. 服务启动日志时间跟系统时间不相符问题
  20. 【英语阅读】纽约时报 | 边走路边看手机有多危险,以及你该如何控制自己

热门文章

  1. java vue ivew
  2. 【Linux操作系统】入门基础
  3. Altera_MAX_Plus_II_v10.2破解软件下载安装
  4. 模拟卷Leetcode【普通】1609. 奇偶树
  5. SQLAPI数据库访问接口访问MySQL数据库
  6. 客户端证书与服务器证书有什么区别?
  7. c++动态规划经典算例
  8. 计算机存储中的内存地址与寻址
  9. #tree创建一棵树
  10. P2P技术是如何将直播带宽降低75%的