GetDlgItem()、EnableWindow()

15 篇文章 0 订阅

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);

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值