zoukankan      html  css  js  c++  java
  • MFC之编辑框

    初始操作

    新建MFC应用程序,项目名为EditCtrl,基于对话框。

    删除原有控件在右侧工具箱中找到Edit Control。放置到窗口中。如图:

    现在的编辑框只可以在一行输入,无法换行,同时如果按下enter换行会直接退出程序。

    多行输入&文本向上滚动&滚动条

    1.多行输入
    右键属性,找到Multiline,改成True。以及Want Return也改为True。这时候就可以多行输入了。

    但一个问题,如图,一行可以一直敲很多字符,但行数一旦占满编辑框就无法再增加行了。

    2.文本向上滚动
    右键属性,找到Auto VScroll,改成True。这样就可以输入很多行了,由于图片不直观,不放图了。

    现在一个问题时没有滚动条,行数太多无法很快返回。

    3.滚动条
    同样在右键属性中,找到Horizontal Scroll以及Vertical Scroll,都改为True。

    一个示例

    按住ctrl复制出一个同样的编辑框,并从工具箱中添加两个按钮。

    实现功能是点击复制按钮,上面编辑框的内容就复制到下面的编辑框,点击退出就是退出程序。

    在上面的编辑框中右键添加变量,设置属性private,变量名n_edit1。而下面的编辑框中右键添加变量,设置属性private,变量名n_edit2。

    如果变量名较多,可以在界面上右键选择类向导,即可查看。

    定位到:类视图--CEditCtrlDlg--OnInitDialg()中,在其中添加代码。

    1.添加编辑框默认显示内容

    n_edit1.SetWindowTextW(TEXT("C++"));
    

    2.设置复制按钮的点击事件
    双击按钮,进入点击事件中,添加代码。

    //获取d到edit1的内容,然后给edit2
    CString str;
    n_edit1.GetWindowTextW(str);
    n_edit2.SetWindowTextW(str);
    

    执行,点击复制按钮后:

    3.设置退出按钮
    双击按钮,进入点击事件中,添加代码。

    //退出程序
    exit(0); 
    
    //退出当前对话框
    CDialog::OnOK();
    
    CDialog::OnCancel();
    

    后两种的不同之处在于:
    CDialog::OnOK首先调用UpdateData(TRUE)将数据传给对话框成员变量,然后调用CDialog::EndDialog关闭对话框;
    CDialog::OnCancel只调用CDialog::EndDialog关闭对话框;

    关于按下enter换行会直接退出程序

    单个未改动的编辑框,换行会使得程序直接退出,尝试更改。
    首先在原来项目基础上新增一个编辑框。

    然后再本项目Dlg右键属性,选择重写。然后定位到OnOk()中,注释掉里面的CDialog::OnOK();即可。

  • 相关阅读:
    rt_thread studio结合cubmx进行stm32驱动开发学习
    rt_thread之时钟管理
    rt_thread线程间通讯
    使用jQuery开发iOS风格的页面导航菜单
    使用jQuery开发一个带有密码强度检验的超酷注册页面
    使用Javascript来创建一个响应式的超酷360度全景图片查看幻灯效果
    [英] 推荐 15 个 jQuery 选择框插件
    JavaScript封装Ajax(类JQuery中$.ajax()方法)
    阿里前端电话面试
    基于HTML5的Web跨设备超声波通信方案
  • 原文地址:https://www.cnblogs.com/echobiscuit/p/12716214.html
Copyright © 2011-2022 走看看