首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何在CMFCPropertyGridCtrl中插入编辑框以使用密码?

在CMFCPropertyGridCtrl中插入编辑框以使用密码,可以通过以下步骤实现:

  1. 创建一个自定义的属性类,继承自CMFCPropertyGridProperty类,用于表示密码属性。
  2. 在自定义属性类中重写OnDrawValue方法,以便在属性格中绘制密码字符。
  3. 在自定义属性类中重写OnEdit方法,以便在编辑模式下显示密码编辑框。
  4. 在自定义属性类中重写OnEndEdit方法,以便在编辑完成后将密码值保存到属性对象中。
  5. 在需要使用密码属性的地方,创建一个自定义属性对象,并将其添加到CMFCPropertyGridCtrl中。

下面是一个示例代码,演示如何在CMFCPropertyGridCtrl中插入编辑框以使用密码:

代码语言:txt
复制
// 自定义密码属性类
class CPasswordProperty : public CMFCPropertyGridProperty
{
public:
    CPasswordProperty(const CString& strName, const CString& strPwd)
        : CMFCPropertyGridProperty(strName, (_variant_t)strPwd, _T(""))
    {
    }

    virtual void OnDrawValue(CDC* pDC, CRect rect)
    {
        // 绘制密码字符
        CString strPwd = (_variant_t)m_varValue;
        CString strDisplay;
        for (int i = 0; i < strPwd.GetLength(); i++)
        {
            strDisplay += _T("*");
        }

        CMFCPropertyGridProperty::OnDrawValue(pDC, rect, (_variant_t)strDisplay);
    }

    virtual BOOL OnEdit(LPPOINT /*lptClick*/)
    {
        // 显示密码编辑框
        CEdit* pEdit = new CEdit;
        CRect rect;
        rect.CopyRect(m_Rect);
        rect.DeflateRect(1, 1);
        pEdit->Create(ES_PASSWORD | WS_CHILD | WS_VISIBLE | WS_BORDER, rect, m_pWndList, AFX_PROPLIST_ID_INPLACE);
        pEdit->SetWindowText((_variant_t)m_varValue);

        return TRUE;
    }

    virtual void OnEndEdit()
    {
        // 保存密码值
        CEdit* pEdit = (CEdit*)m_pWndInPlace;
        CString strPwd;
        pEdit->GetWindowText(strPwd);
        m_varValue = (_variant_t)strPwd;

        CMFCPropertyGridProperty::OnEndEdit();
    }
};

// 在CMFCPropertyGridCtrl中添加密码属性
void AddPasswordProperty(CMFCPropertyGridCtrl& propGrid, const CString& strName, const CString& strPwd)
{
    CPasswordProperty* pProperty = new CPasswordProperty(strName, strPwd);
    propGrid.AddProperty(pProperty);
}

使用示例:

代码语言:txt
复制
// 创建CMFCPropertyGridCtrl对象
CMFCPropertyGridCtrl propGrid;
CRect rectPropGrid;
GetClientRect(&rectPropGrid);
propGrid.Create(rectPropGrid, this, IDC_PROP_GRID);

// 添加密码属性
AddPasswordProperty(propGrid, _T("密码"), _T("********"));

这样,就可以在CMFCPropertyGridCtrl中插入编辑框以使用密码了。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

Qt Style Sheet实践(四):行文本编辑框QLineEdit及自动补全

导读       行文本输入框在用于界面的文本输入,在WEB登录表单应用广泛。一般行文本编辑框可定制性较高,既可以当作密码输入框,又可以作为文本过滤器。...QLineEdit本身使用方法也很简单,无需过多的设置就能进行使用。于是这篇博文主要讲解如何对行文本编辑框QLineEdit进行定制。...下面我们来看看行编辑框的另外一个应用:密码输入框。在默认情况下,当行编辑框用于密码输入时,其效果如下: ?      ...这里我们设置成了35,这是一个ASCII码值,在ASCII码对应字符为‘#’。因此: ?       当然,我们还可以换成其他的字符,‘*’。...无论实在面向程序员的代码编辑器,还是面向终端用户的软件产品,自动补全都能为工作效率和用户体验带来极大的提升。文本编辑框的自动补全功能在数据过滤器中使用较为常见,用于过滤不相干数据直奔目标数据。

2.7K80
  • C++ Qt开发:LineEdit单行输入组件

    是构建用户交互界面的基础组件之一,通常与其他控件一起使用,例如按钮、标签等,构建完整的用户输入界面。...按钮配置: 可以自定义消息框显示的按钮,"确定"、"取消"、"是"、"否"等,也可以使用默认的按钮配置。...详细信息和帮助: 可以设置消息框的详细信息和帮助信息,提供更多上下文或帮助用户理解消息。 默认按钮: 可以指定消息框的默认按钮,用户可以通过回车键触发默认按钮。...需要注意的是,使用该组件时,需要在mainwindow.h头文件引入#include <QCloseEvent组件,并在public:定义void closeEvent(QCloseEvent *event...为了能灵活的展示lineEdit组件与PushButton的灵活运用,本次将实现一个具有记住密码的用户登录程序,首先在布局需要两个label标签,两个lineEdit编辑框,以及一个checkBox

    85510

    C# WPF Dev控件之正则验证介绍

    简单面罩(Simple Masks) 当您需要输入有限长度的字符串(电话号码、邮政编码、社保号码等)时,此掩码类型是最好的。使用字符序列指定掩码。...04—其它 掩码的空值输入 设置BaseEdit。AllowNullInput属性设置为true,允许在相应数据字段没有可用信息的情况下,在屏蔽编辑器输入空值。...#在遮罩中使用占位符 对于简单、常规和正则表达式掩码类型,编辑框的占位符使用TextEdit确定的特殊字符表示。MaskPlaceHolder酒店。可以使用此属性更改默认占位符(“x”字符)。...如果在此位置只能插入特定字符,编辑器将自动显示此字符,并将插入符号移到该字符的右侧。 假设编辑掩码设置为“\R{MonthNames}”(编辑器将接受月份名称)。...当最终用户在空编辑框输入“M”字符时,第二个占位符将自动填充“a”字符,因为有两个月“M”开头(三月和五月),并且在第二个位置都包含“a”。

    1.9K40

    邮件编辑指南

    编辑框工具区打开 效果预览 格式刷 可保存多个格式,并通过点击或F2实现对格式的套用 颜色处理:字体颜色/字体背景颜色/编辑器背景色 缩进处理:向左/向右 向左缩进 向右缩进 插入图片...:本地/网络 编辑框功能区和右键功能区皆可打开 插入图片 功能 可以是本地图片,也可以是网络图片链接 本地图片插入 网络图片插入 插入表格 编辑框功能区和右键功能区皆可打开 插入表格... 功能 表格设置: 表格标题: 表格尺寸:行数/列数 表格颜色:透明的/背景色/边框色 表格属性:边线宽度/线间距宽/线间隙宽/行高/列宽 效果预览 对齐方式:靠左/靠/居 左对齐...对齐 右对齐 编辑框工具区打开 效果预览 有序列表/无序列表 编辑框工具区打开 效果预览 插入超链接 插入横线 插入日期和时间 有多种格式可供选择 插入文本文件 文本文件内容将展示在邮件中文...背景图片 插入背景图片/清除背景图片 三、进阶使用 快速文本 下图演示: 新建快速文本 插入快速文本 信纸使用 其实就是背景图片,不过内置了默认的图片 Html代码 编辑HTML

    95510

    Android开发笔记(一百四十六)仿支付宝的支付密码输入框

    然而,计划赶不上变化,开发工作总有一些现有控件无法直接实现的需求,就像支付宝的支付密码输入框,在一排方格区域内输入并显示密文密码,每个密文字符之间又有竖线分隔。...可是单张静态截图无法准确体现支付密码输入框的具体功能,因此我们再来看看使用该输入框的完整操作流程,相关动图如下所示。 ?...由这张动图可以发现,支付密码输入框至少需要完成以下功能: 1、一开始边框是灰色的,获得焦点后边框变蓝色; 2、输入框一共六个方格,每个方格之间竖线隔开; 3、每个方格只显示一个密码字符,且字符位于方格中央...; 4、密码不显示明文,而是显示密文,比如点号(·)或者星号(*); 5、输完六位密码,应自动触发密码输入完成的事件; 因为支付密码允许一位一位输入,也允许一位一位删除,所以它本质上还是一个编辑框,也就是说...这个需求看起来很简单,只要强行给TextView队列调用setText方法即可,然而这不是安全的做法,因为它丢弃了CharSequence的丰富信息。

    1.9K30

    C++ Qt开发:StringListModel字符串列表映射组件

    该组件通常会配合ListView一起使用,例如将ListView组件与Model模型绑定,当ListView组件内有数据更新时,就可以利用映射将数据模型的数值字符串格式提取出来,同理也可实现将字符串赋值到指定的...首先绘制UI界面,如下图中所示,左侧是一个ListView组件,右侧是一个PlainTextEdit组件; 1.1 初始化模型 如下代码演示了如何在 MainWindow 中使用 QStringListModel...如下代码演示了如何在 MainWindow 通过按钮的点击事件向 QStringListModel 添加或插入数据。...具体步骤包括: 使用 insertRow 在模型的末尾插入一行。 获取最后一行的索引。 从界面的 lineEdit 获取输入的文本。 使用 setData 方法将文本设置到模型的指定索引处。...使用 insertRow 在当前行的前面插入一行。 从界面的 lineEdit 获取输入的文本。 使用 setData 方法将文本设置到模型的指定索引处。

    19210

    Android开发第六讲EditText 编辑框

    Android开发第六讲EditText 编辑框 一丶EditText编辑框属性 EditText 继承自 TextView 所以它的属性我们可以使用....那么说一下常用的属性吧 android:hint = "提示文字" 加上这个编辑框会提示你要输入的文字 android:inputType="textPassworld" 加上这个,表示编辑框输入的时候文字是密文密码形式...android:inputType 可以规定编辑框输入的各种形式.比如密码形式 指定输入数字等. android:drawableleft 可以给编辑框加图片.这样可以做一个很好的登录框 使用常用属性配合....所以我们的代码要写在 EdtActive.java 效果如下 ?...按钮提示文字 分别是请输入用户名 以及请输入密码. 而且都加了图标. 登录按钮加了状态选择器 点击登录提示登录成功 ? 二丶编辑框响应监听事件 响应监听事件就需要写代码了.

    1K20

    iis创建用户隔离模式FTP站点的方法

    配置成“用户隔离”模式的FTP站点可以使用户登录后直接进入属于该用户的目录,且该用户不能查看或修改其他用户的目录。...第3步 在相关编辑框中键入用户名(“xiaowei”)和密码,取消“用户下次登录时须更该密码”选项并勾选“用户不能更该密码”和“密码永不过期”两项,最后单击“创建”按钮(如图1)。...首先必须在NTFS分区创建一个文件夹作为FTP站点的主目录(“CceFTP”),然后在“CceFTP”文件夹下创建一个名为“LocalUser”的子文件夹,最后在“LocalUser”文件夹下创建若干个跟用户账户一一对应的个人文件夹...提示:在安装过程需要插入Windows Server 2003的安装光盘或指定安装源文件。...登录FTP站点 笔者看到站点创建完成了,迫不及待地来到一台电脑旁,用户“xiaowei”的身份成功登录,并在该目录中新建了一个文档。

    3.1K20

    Android开发笔记(三十六)展示类控件

    3、在代码设置某控件为可见或不可见或消失,此时需要使用View类的三个变量,分别是View.VISIBLE、View.INVISIBLE和View.GONE。...在录入用户信息时(比如输入姓名、密码等等),EditText输入回车键,常常不要换行而是让光标直接跳到下一个编辑框。这个场景说起来简单,开发过程中就分解为三个功能: 1、监控用户当前输入了回车键。...方式一:在布局文件的EditText节点中加入singleLine属性,但该方式只在视觉上起作用,真正的字符串还是带有回车换行符; android:singleLine="true" 方式二:去掉编辑框文本的回车符和换行符...,并自动挪到编辑框文本末尾。...注意背景图不按比例拉伸,其实背景默认fitXY方式拉伸。 在代码设置: setScaleType : 设置图形的拉伸类型。 setImageAlpha : 设置图形的透明度。

    1.5K30

    .NET 封装的Windows平台轻量DirectUI框架

    生成的动态链接库支持被其它语言python、java、go、dephi、C#、VB、易语言等调用。 扩展组件自由灵活,引擎处理底层逻辑。用户只需编写绘制代码,不需要考虑复杂的消息处理。...目前支持组件有按钮、开关、单选框、选择框、编辑框、富文本编辑框、列表框、报表列表、模板列表、分组框、组合框、菜单、树形框、滑块、单选框、选择框、选项卡、加载动画框、旋转图片框、页面、图片框、消息框、图标列表...编辑框支持富文本,支持加载RTF格式文档。 窗口或组件支持接收拖曳文件或文本。 支持模态窗口。 支持限制区域消息通知。...7 + DDD + CQRS +React+Vite的实战项目 程序员开发者神器:10个.Net开源项目 一份阅读量突破10万+的C#/.NET/.NET Core面试宝典(基础版) 【微信自动化】使用...c#实现微信自动化 细聊C# AsyncLocal如何在异步间进行数据流转

    30141

    CC++ Qt 数据库与SqlTableModel组件应用

    tableView->setSelectionBehavior(QAbstractItemView::SelectRows); // 行选择模式 // 添加数据映射,将选中字段映射到指定编辑框...执行获取name/mobile字段,并放入映射数据集中的 lineEdit编辑框 void MainWindow::on_currentRowChanged(const QModelIndex ¤t...// Combox的字段对目标 升序排列 void MainWindow::on_pushButton_ascending_clicked() { tabModel->setSort(ui-...>comboBox->currentIndex(),Qt::AscendingOrder); tabModel->select(); } // Combox的字段对目标 降序排列 // https...如果需要修改或增加特定行或记录我们只需要点击相应的按钮,并在选中行直接编辑即可实现向数据库插入数据,而有时我们不希望通过在原表上操作,而是通过新建窗体并在窗体完成增删改,此时就需要使用Dialog窗体并配合原生

    92110

    VBA专题10-8:使用VBA操控Excel界面之在功能区添加内置控件

    本文重点讲解如何在功能区添加不同类型的内置控件。 添加普通按钮和切换按钮 按下面的步骤来添加普通按钮和切换按钮(例如,拼写和删除线控件): 1. 下载并安装Custom UI Editor。...关闭该工作簿,然后在CustomUI Editor打开该工作簿。 4. 在CustomUI Editor,单击“插入”并选择“Office 2007 Custom UI Part”。...本例,TabHome是“开始”选项卡的idMso。如果要在其他内置选项卡插入按钮,那就使用其他选项卡的idMso替换掉TabHome。...添加不同类型的控件 在本例,你将学习如何在自定义选项卡添加8个按钮(其中3个水平排列且没有标签)、2个切换按钮、1个拆分按钮、4个对话框启动器、2个组合框、2个菜单、2个库、1个标签控件、1个编辑框...如果要水平排列一组组合框、菜单、库、复选框、标签或者普通控件,应使用box元素。 下图展示了上述XML代码的效果: ? 添加通用控件 当在功能区添加内置控件时,也可以使用控件元素而不是指定其类型。

    6.4K30

    CC++ Qt 数据库与SqlTableModel组件应用

    ->tableView->setSelectionBehavior(QAbstractItemView::SelectRows); // 行选择模式 // 添加数据映射,将选中字段映射到指定编辑框...toFirst(); // 默认选中首条映射记录 // 绑定信号,当鼠标选择时,在底部编辑框输出...执行获取name/mobile字段,并放入映射数据集中的 lineEdit编辑框void MainWindow::on_currentRowChanged(const QModelIndex ¤t...// Combox的字段对目标 升序排列void MainWindow::on_pushButton_ascending_clicked(){ tabModel->setSort(ui->comboBox...如果需要修改或增加特定行或记录我们只需要点击相应的按钮,并在选中行直接编辑即可实现向数据库插入数据,而有时我们不希望通过在原表上操作,而是通过新建窗体并在窗体完成增删改,此时就需要使用Dialog窗体并配合原生

    86730

    VCL组件之编辑控件「建议收藏」

    —— 默认值为#0(空字符),表示显示用户输入的字符,如果设为其他字符,用户输入的字符将自动显示为该字符,通常用于密码框,将该属性设为“*” ReadOnly —— 指定显示的输入内容能否被改变...buffer参数指定的缓冲区里,并返回复制的字符数 PasteFromClipboard过程—— 将剪贴板的内容粘贴到编辑框 Tip 如果需要编辑组件的文本右对齐或居中,使用Memo组件,...,如下: 左上方的“Input Mask”编辑框用于输入掩码规则,我们从该编辑框输入的规则“!...^”号的位置,即坐标 Lines——我们仍然可以使用Text属性来访问编辑框的字符,但要访问某一行的文本时,就要用到Line属性 ScrollBars——指定了编辑框的滚动条位置,有ssNone、...ssHorizontal、ssVertical、ssBoth四种 WantReturns——在编辑框是否能回车换行 WantTabs——在编辑框是否能用Tab键使光标移动一个制表位 其中,Lines

    2K20

    何在USB驱动器安装CentOS 7

    另请参阅 : 如何在USB驱动器上安装Linux OS并在任何PC上运行它 这样,您可以在将PC设置为从USB驱动器启动后,在任何PC上插入USB并无缝运行CentOS 7 。 听起来很酷吧?...在本文中,我们将向您展示如何在USB驱动器安装CentOS 7 。 先决条件 在开始安装之前,请执行航班检查并确保您拥有以下内容: 安装介质( 4 GB或更多的DVD或USB驱动器)。...配置键盘布局 选择安装源 在下一步,单击“ 安装源 ”以使用除传统USB / DVD之外的其他来源自定义安装。 这是我们将指示安装程序在USB驱动器上安装CentOS 7 OS的部分。...选择手动分区 这会弹出窗口,LVM所示,默认选项。...输入一个强密码,然后点击“ 完成 ”。 设置Root密码 接下来,单击“ 用户创建 ”创建新用户。 填写所有必需的详细信息,然后单击“ 完成 ”按钮保存更改。

    5.6K20

    「毕业设计」调教Word指南

    那么如何插入两张不同布局的页面?使用布局菜单下,分页符的“下一页”将两页断开即可分别设置两页不同的版式。...插入大小一致的图片 原理:通过表格来限制图片的大小。 新建一个表格,同时,对表格的属性进行更改,点击选项,然后取消勾选自动重调尺寸适用内容。 提示:快捷键F4为重复上一步操作。...如何在表格插入标题?首先选中表格,然后在引用菜单,选择插入题注命令。 选择新建标签,在标签中新建标签,例如输入表,同时选择编号,进行编号。...如何在多个地方插入相同文献引用?在需要插入的地方,选择菜单引用下的交叉引用。...同时如果需要插入共X页的信息,可以在文档信息插入域。 也可以在页眉设置标题。 设置目录 略。 封面制作及打印 封面设置使用表格大法。

    1.8K10

    安卓逆向系列教程 4.2 分析锁机软件

    安卓逆向系列教程 4.2 分析锁机软件 作者:飞龙 这个教程我们要分析一个锁机软件。像这种软件都比较简单,完全可以顺着入口看下去,但我这里还是用关键点来定位。...上面那个“时空先生”是个按钮,直接按下会提示“密码错了”。我们这个词为关键词来搜索: ? 发现字符串资源的名称是_?m@0x7f040007。...我们往下看看便可知道,这个软件启动之后就创建了一个服务,服务获取了WindowsManager,然后加载了一个LinearLayout并添加它,来实现锁屏的效果: private void createFloatView...这个字符串,我们相同方式寻找,是此机ID:,那么number就应该是后面的数字。我这里是108316,那么密码就应该是216633。...其实也不难,我们可以看到这个编辑框的高度很小,但是还有宽度,我们在按钮左下方的大致位置上点一点,它就出来了。 ? 我们把编辑框的内容全部删除,然后输入216633,再次点击这个按钮。 ? 解锁成功。

    94040

    C++ Qt开发:QItemDelegate自定义代理组件

    在Qt,QStyledItemDelegate 类是用于创建自定义表格视图(QTableView和QTableWidget)的委托类,允许你自定义表格每个单元格的外观和交互。...此处我们将实现对QTableView表格组件的自定义代理功能,例如默认情况下表格的缺省代理就是一个编辑框,我们只能够在编辑框内输入数据,而有时我们想选择数据而不是输入,此时就需要重写编辑框实现选择的效果...1.1 概述代理类代理类的作用是用来实现组件重写的,例如TableView默认是可编辑的,之所以可编辑是因为Qt默认为我们重写了QLineEdit编辑框实现的,也可理解为将组件嵌入到了表格,实现了对表格的编辑功能...在自定义代理QAbstractItemDelegate是所有代理类的抽象基类,它用于创建自定义的项委托。提供了一个基本的框架,使得可以定制如何在视图中绘制和编辑数据项。...1.2 自定义代理组件这里我们第一个SpinBox组件为例,要实现代理该组件,首先需要在项目上新建一个SpinDelegate类,并依次实现上述的四个方法,先来开创建流程;选择addnew选中 C++

    78211
    领券