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

原创 2016年05月31日 15:40:30

在写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函数。

版权声明:本文为博主原创文章,未经博主允许不得转载。

相关文章推荐

MFC 启用和禁用控件

启用和禁用控件可以调用CWnd::EnableWindow 函数。BOOL EnableWindow(BOOL bEnable = TRUE);判断控件是否可用可以调用 CWnd::IsWindowE...

MFC中SendMessage和PostMessage两种发送消息用法

前一段时间做项目,用到消息响应机制,为了记忆,特发与此!待事件充裕之时再进行整理。 1.可通过SendMessage或PostMessage发送消息; SendMessage是发送消息之后待消息响应执...

WM消息其lParam和wParam参数定义

鼠标消息 lParam:低字组为x 座标,高字组为y 座标,这两个座标是相对于窗口显示区域左上角的位置。 Wparam:指示滑鼠按键以及Shift和Ctrl 键的状态。可以使用头文件WINUSER...

VC ++ MFC编程--ListCtrl控件的用法

ListCtrl在工作中,常常用到,也常常看到大家发帖问怎么用这个控件,故总结了一下自己的使用经验,以供参考使用。 先注明一下,这里,我们用m_listctrl来表示一个CListCtrl的类对象,...

VS2010/MFC编程入门之七(对话框:为对话框添加控件)

本文转自鸡啄米:http://www.jizhuomi.com/software/151.html感谢鸡啄米对本文的贡献。 创建对话框资源需要创建对话框模板、修改对话框属性、为对话框添加各种控件等步...

Windows编程入门(8)--MFC中ListBox控件的使用

原文链接:http://www.cnblogs.com/zuollblog/archive/2010/04/21/1716940.html 1. CListCtrl 风格         LVS_...

MFC编程记录--图片控件类

因公司项目需要,使用mfc写一个可以编辑图片的功能。本人初学,所以就四处查询资料,下面是我实现的细节介绍,如有不对,请指出,谢谢。        本人使用了atlimage.h库中得CImage类来作...

VC ++ MFC编程--ListCtrl控件的用法

原文地址:http://liuzhigong.blog.163.com/blog/static/17827237520112111214917/   ListCtrl在工作中,常常用到,也常常看到...

MFC编程->可编辑List Control控件

List Control使用时,要使得单元格内内容可编辑,list控件代码需要重写。 #if !defined(AFX_EDITLISTCTRL_H__A02CE0B0_FF7B_4A5...

Windows消息大全,MFC编程--控件类名

消息 MSG_MAP 相应函数 作用 WM_LBUTTONDOWN ON_WM_LBUTTONDOWN() OnLButtonDown(UINT nFlags, CPoint point) 相应鼠标...
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MFC编程之控件的禁用与激活
举报原因:
原因补充:

(最多只允许输入30个字)