GetDlgItem()、EnableWindow()
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()相关推荐
- GetDlgItem、EnableWindow等函数在线程函数中无法使用
将窗口指针传递给线程,或者申明一个全局窗口指针,使线程内可见. 例如: UINT TestThread(LPVOID pParam) {CMyDlg* pDlg = (CMyDlg*)pParam;p ...
- GetDlgItem(IDC_EDIT1)-EnableWindow(false);
GetDlgItem(IDC_EDIT1)->EnableWindow(false); 1)GetDlgItem(IDC_EDIT1)得到IDC_EDIT1控件指针. 2)EnableWindo ...
- GetDlgItem、SendMessage、SetWindowText、GetWindowText、IsWindowVisible、ShowWindow、IsWindowEnabled按钮控件操作
GetDlgItem获取窗口中指定参数ID的子元素的句柄,可以通过返回的句柄对窗口内的子元素进行操作. WINUSERAPI HWND WINAPI GetDlgItem(__in_opt HWND ...
- 关于GetDlgItem、GetDlgCtrlID
如果知道父窗口的句柄和子窗口ID,就可以得到子窗口的句柄: hwndChild = GetDlgItem(hwndParent, idChild); 当然了,如果知道了窗口的句柄,就可以用GetDlg ...
- VC++ MFC 多线程及线程同步(详细、全面总结!)
更多详情:http://blog.csdn.net/whyacinth/ VC++ MFC 多线程及线程同步 关键词: MFC 多线程及线程同步 ...
- 基于C++、MFC、halcon实现视觉定位【附部分源码】
文章目录 前言 演示视频 一.项目文件目录讲解 二.MFC软件界面的设置 1.首先菜单栏的设置,按照此地方设置即可 2.CameraSetting 的相机设置页面 3.Calibration的相机标定 ...
- 常用MFC控件基础使用(Edit Button Check Combo Tree 显示位图 控件大小自适应、线程、右键菜单、控件调整移动、MFC背景)
常用MFC控件基础使用 1.Edit Control 2.Button控件 3.Check控件 4.Combo Box 5.Tree 控件 5.快捷键设置 6 显示缓冲区位图 7 窗口自适应大小 8 ...
- 【MFC】EnableWindow:启用/禁用控件或窗口
01.目录 目录 01.目录 02.EnableWindow函数 2.1 函数原型 2.2 参数及返回值 02.EnableWindow函数 启用和禁用控件或者窗口(设置个控件或窗口可用或不可用)可以 ...
- C++ + MFC 写一个程序参数修改器(五、界面交互)
一.说明 前面几篇,已经将所有基本的工具函数写完,这一篇,主要是将所有的功能串起来,使界面和功能进行交互. 二.初始化 2.1 初始化两个listctrl 查找的list控件只需要一栏,显示地址就可以 ...
最新文章
- ANN:神经网络堆叠/进化故事( 从感知机到DRBN )
- cnblogs客户端发贴解析,Post,Get分析
- Perl: print @globbing.\n; 和 print @globbing; 不一样,一个已经转换为数组元素个数了...
- Spring-tx-TransactionAttributeSource接口
- ES6学习(十)—async 函数
- 不联网的情况下,使用 electron-builder 快速打包全平台应用
- vue dve环境static无法被外部访问_vue中的代理转换机制proxyTable配置项
- 关于OMC链接LANSWITCH
- 一维搜索算法——黄金分割法原理与实现
- 中国未来5年最“吃香”的4大行业,市场需求大,堪比铁饭碗!
- 一个产品从0到1的完整流程
- opencv 拍摄并保存照片
- 【QT 5 设置自定义标题栏+学习:《QT实现鼠标拖动调整窗口大小》+基础样例】
- JS判断对象是否为空(个人常用)
- cgb2111-day02
- poi读取excel多层表头模板写入数据并导出
- 孤独的宇宙中,人类是个例外吗?
- javaweb报修系统源码
- 服务启动日志时间跟系统时间不相符问题
- 【英语阅读】纽约时报 | 边走路边看手机有多危险,以及你该如何控制自己