MFC编程之控件的禁用与激活

来源:互联网 发布:淘宝卖家名字大全 编辑:程序博客网 时间:2024/06/05 14:16

在写3DES文件加密的时候,我希望能让用户的输入符合标准的时候,能执行加密的功能,或者输入的文件类型是ept才能解密,于是便找到了控件禁用语激活

首先可以看到,我的加解密按钮设置为禁用状态
这里写图片描述

在我的程序里,如果输入两个密钥都是八字节的时候,
如果输入的文件是ept类型的,则可以加解密,如果不是则只能加密
这里写图片描述

注释的地方也可以用,这是两种不同的方法,
第一种是直接用GetDlgItem(控件ID)获取窗口句柄,然后调用EnableWindow()方法
第二种是给控件关联一个控件变量,通过空间变量的EnableWindow()方法来激活和禁用控件
本文后面附上EnableWindow()方法的百度百科解释


这里写图片描述

上图可以看到,在输入的密钥不规范的时候,加解密控件都是禁用状态
这里写图片描述

当两个密钥都是八字节时,因为此时文件路径未初始化,默认字符串不是ept文件,所以只有加密按钮被激活
这里写图片描述

当输入的文件是ept类型时,加解密按钮都被激活,一旦某个密钥长度被改了,则密钥输入框会被初始化为初始化字符串,加解密按钮都会被禁用
这里写图片描述

可以看到,控件的激活与禁用很简单,但是在某些程序中却可以得到更好的体验

附:
EnableWindow()函数
Windows API函数。该函数允许/禁止指定的窗口或控件接受鼠标和键盘的输入,当输入被禁止时,窗口不响应鼠标和按键的输入,输入允许时,窗口接受所有的输入。

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

函数原型
BOOL EnableWindow(HWND hWnd,BOOL bEnable);
WINUSERAPI BOOL WINAPI
EnableWindow(
_In_HWNDhWnd,
_In_BOOLbEnable);

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

返回值
在 EnableWindow 成员函数调用之前,指示状态。 如果窗口此前已禁用,则返回值是非零。 返回值是0,则窗口先前启用或错误。若想获得更多的错误信息,可调用GetLastError函数。

0 0
原创粉丝点击