转:窗口启用/禁用功能函数EnableWindow的使用
2016-08-31 13:35
363 查看
在非MFC环境中如何使控件或者窗口禁用呢?起初是想通过发送消息来实现,但找来找去都木有找到控件禁用的消息(也是是博主木有找到的缘故),所以只能另辟蹊径,使用
EnableWindow这个函数,
该函数的函数功能为:允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的输入,输入允许时,窗口接受所有的输入。
下面是它的函数原型:BOOL EnableWindow(HWND hWnd,BOOL bEnable);
参数:
hWnd:被允许/禁止的窗口句柄。
bEnable:定义窗口是被允许,还是被禁止。若该参数为TRUE,则窗口被允许。若该参数为FALSE,则窗口被禁止。
返回值:如果窗口原来是被禁止的,返回值不为零;如果窗口原来不是被禁止的,返回值为零。若想获得更多的错误信息,可调用GetLastError函数。
备注:若窗口的允许状态将发生变化,WM_ENABLE消息将在Enblewindow函数返回前发送出去,若窗口已已被禁止,它所有的子窗口也被禁止,尽管并未向子窗口发送WM_ENABLE消息。
窗口被激活前必须处于允许状态。比如,一个应用程序将显示一个无模式对话框并且已使该对话框的主窗口处于禁止状态,则在撤消该对话框之前须使其主窗口处于允许状态。否则,其他窗口将接受并被激活。若子窗口被禁止,则系统决定由哪个窗口接受鼠标消息时将忽略该窗口。
缺省情况下,窗口被创建时被置为允许。若创建一个初始化为禁止状态的窗口,应用程序需要在CeateWindow或CeateWindowEX函数中定义WS_DISABLED样式。窗口创建后,应用程序可用EnbleWindow来允许禁止窗口。
应用程序可利用此函数允许/禁止对话框中的某个控件。被禁止的控件既不能接受键盘输入,也不能被用户访问。
以上就是对这个函数的全部描述了,博主要指出的是在这个函数的两个参数中,主要是第一个参数窗口句柄的获取,由于在非MFC环境中,所以需通过父窗口句柄来获得控件的句柄:
::GetDlgItem(m_hWnd,IDC_BUTTON_DEL); // IDC_BUTTON_DEL就是控件的ID
下面来谈谈下m_hWnd这个参数,MFC的窗口类均派生自CWnd类,而CWnd类持有一个HWND类型的成员m_hWnd,HWND是Win32窗口句柄类型。随意每个窗口类都有这么一个成员变量来记录本窗口的句柄。
EnableWindow这个函数,
该函数的函数功能为:允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的输入,输入允许时,窗口接受所有的输入。
下面是它的函数原型:BOOL EnableWindow(HWND hWnd,BOOL bEnable);
参数:
hWnd:被允许/禁止的窗口句柄。
bEnable:定义窗口是被允许,还是被禁止。若该参数为TRUE,则窗口被允许。若该参数为FALSE,则窗口被禁止。
返回值:如果窗口原来是被禁止的,返回值不为零;如果窗口原来不是被禁止的,返回值为零。若想获得更多的错误信息,可调用GetLastError函数。
备注:若窗口的允许状态将发生变化,WM_ENABLE消息将在Enblewindow函数返回前发送出去,若窗口已已被禁止,它所有的子窗口也被禁止,尽管并未向子窗口发送WM_ENABLE消息。
窗口被激活前必须处于允许状态。比如,一个应用程序将显示一个无模式对话框并且已使该对话框的主窗口处于禁止状态,则在撤消该对话框之前须使其主窗口处于允许状态。否则,其他窗口将接受并被激活。若子窗口被禁止,则系统决定由哪个窗口接受鼠标消息时将忽略该窗口。
缺省情况下,窗口被创建时被置为允许。若创建一个初始化为禁止状态的窗口,应用程序需要在CeateWindow或CeateWindowEX函数中定义WS_DISABLED样式。窗口创建后,应用程序可用EnbleWindow来允许禁止窗口。
应用程序可利用此函数允许/禁止对话框中的某个控件。被禁止的控件既不能接受键盘输入,也不能被用户访问。
以上就是对这个函数的全部描述了,博主要指出的是在这个函数的两个参数中,主要是第一个参数窗口句柄的获取,由于在非MFC环境中,所以需通过父窗口句柄来获得控件的句柄:
::GetDlgItem(m_hWnd,IDC_BUTTON_DEL); // IDC_BUTTON_DEL就是控件的ID
下面来谈谈下m_hWnd这个参数,MFC的窗口类均派生自CWnd类,而CWnd类持有一个HWND类型的成员m_hWnd,HWND是Win32窗口句柄类型。随意每个窗口类都有这么一个成员变量来记录本窗口的句柄。
相关文章推荐
- 窗口启用/禁用功能函数EnableWindow的使用
- 窗口启用/禁用功能函数EnableWindow的使用
- 窗口禁用和启用函数
- ScrollWindow 函数功能 该函数滚动所指定的窗口客户区域内容。函数提供了向后兼容性,新的应用程序应使用ScrollWindowEX。
- GridView中使用LinkButton添加启用禁用功能
- SystemParametersInfo API 函数,此功能的状态可以被选中,启用,或禁用根据需要
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 提示该盘CD-ROM来自于比您当前使用的windows更旧的版本 该盘上的安装功能已被禁用
- 使用半透明的DIV实现禁用页面功能
- 使用半透明的DIV实现禁用页面功能(转)
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEventValidation 方法来注册回发或回调数据以进行验证。
- ftruncate函数的功能及使用
- 在C#中使用钩子实现Alt+F4健窗口最小化功能
- 解决多线程产生的“以前的函数求值超时,函数求值被禁用。必须继续执行才能重新启用函数求值”
- 使用window.showModalDialog弹出的模态窗口中打印功能的实现
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。如果数据有效并且是预期的,则使用 ClientScriptManager.RegisterForEvent
- 写一个好函数,功能:求C风格字符串长度;要求:不调用其他函数,不使用变量
- 回发或回调参数无效。在配置中使用 或在页面中使用 启用了事件验证。出于安全目的,此功能验证回发或回调事件的参数是否来源于最初呈现这些事件的服务器控件。
- MFC的窗口类虚函数PostNcDestroy使用应注意
- 半透明DIV 层链接启用和禁用的功能实现