• MFC中关闭窗口的几种办法+MFC中MessageBox的用法


    MFC中关闭窗口的几种办法:

    退出程序用AfxGetMainWnd()->SendMessage(WM_CLOSE);

    关闭当前窗口用DestroyWindow( );

    关闭模式对话框用EndDialog(0);

    MFC中MessageBox的用法

    消息框是个很常用的控件,属性比较多,本文列出了它的一些常用方法,及指出了它的一些应用场合。
    1.
    MessageBox("这是一个最简单的消息框!");
    2.
    MessageBox("这是一个有标题的消息框!","标题");
    3.
    MessageBox("这是一个确定 取消的消息框!","标题", MB_OKCANCEL );
    4.
    MessageBox("这是一个警告的消息框!","标题", MB_ICONEXCLAMATION );
    5.
    MessageBox("这是一个两种属性的消息框!","标题", MB_ICONEXCLAMATION|MB_OKCANCEL );

    6.
    if(MessageBox("一种常用的应用","标题",MB_ICONEXCLAMATION|MB_OKCANCEL)==IDCANCEL)
    return;

    附其它常用属性

    系统默认图标,可在消息框上显示
    X错误 MB_ICONHAND, MB_ICONSTOP, and MB_ICONERROR
    ?询问 MB_ICONQUESTION
    !警告 MB_ICONEXCLAMATION and MB_ICONWARNING
    i信息 MB_ICONASTERISK and MB_ICONINFORMATION

    按钮的形式
    MB_OK 默认
    MB_OKCANCEL 确定取消
    MB_YESNO 是否
    MB_YESNOCANCEL 是否取消

    返回值
    IDCANCEL 取消被选
    IDNO 否被选
    IDOK 确定被选
    IDYES 是被选

    MFC 文本框 用法

    //获得EDIT

    CEdit* pBoxOne;

    pBoxOne = (CEdit*) GetDlgItem(IDC_EDIT1);

    //付值

    pBoxOne->SetWindowText( _T"FOO" );

    //取值

    CString str;

    pBoxOne->GetWindowText(str);

    GetDlgItem(IDC_EDIT1)->SetWindowText( _T"FOO" );

    也可以

    //取值

    CString str;

    GetDlgItem(IDC_EDIT1)->GetWindowText(str);

    EditControl是在MFC对话框中最频繁的使用的控件之一

    VC++2005提供EditControl的属性和控件事件操作简单方便

    1只允许输入数字

    如果设置EditControl中只能输入数字,在VC6.0中需要编写一个派生类来达到目的,而在VC++2005下只需要在属性对话框中将Number的属性值设

    为True就可以了.

    2获取EditControl的内容

    两种方法

    第一种,利用MFC应用程序向导生成一个基于对话框的应用程序,从资源视图中选择该Dialog窗体,利用右侧的工具箱,向Dialog内添加一个

    EditControl项,声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content.

    CString m_sEdit_Content;

    CString s;

    UpdateData(true);

    s=m_sEdit_Content.GetString();

    MessageBox(s,_T("获取编辑框的内容"),MB_OK);

    s.ReleaseBuffer();

    这样就取得了编辑框的内容

    UpdateData(true);这句代码很重要,它的作用是将输入的数据装入EditControl对应的变量m_sEdit_Content中.

    由于MFC应用程序向导默认是使用Unicode库,所以MessageBox中的字符串需要用_T(),否则会出现const char[]转换LPCTSTR错误,如果不使用

    Unicode库就不需要_T().

    第二种方法

    声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content.

    代码如下(Unicode)

    CString s;

    s.GetBufferSetLength(1024);

    m_Edit_Content.GetWindowTextW(s.GetBuffer(),s.GetLength());

    MessageBox(s,_T("获取文本框的内容"),MB_OK);

    s.ReleaseBuffer();

    如果不是Unicode下获取编辑框内容的函数就是GetWindowTextA

    3将EditControl中的内容转化为整数

    在限制编辑框只能数字之后,要将字符串转化为整数

    声明控件变量的类别为Value,变量类型为CString,变量名为m_sEdit_Content.

    CString s;

    UpdateData(true);

    s=m_sEdit_Content.GetString();

    int n=_tstoi(s);

    s.ReleaseBuffer();

    n就是所需要的整数

    在VC2005下字符串转换成整数需要_tstoi这个函数

    4限制编辑框的输入长度

    声明控件变量的类别为Control,变量类型为CEdit,变量名为m_Edit_Content.

    在对话框初始化的地方写m_Edit_Content.SetLimitText(1);

    编辑框就只能输入一个字符了.

  • 相关阅读:
    VSCode插件开发全攻略(一)概览
    如何使用JavaScript实现纯前端读取和导出excel文件
    ReactNative学习笔记(七)Navigator的使用
    ReactNative学习笔记(六)集成视频播放
    ReactNative学习笔记(五)踩坑总结
    ReactNative学习笔记(四)热更新和增量更新
    ReactNative学习笔记(三)打包、调试、运行等相关介绍
    ReactNative学习笔记(二)基础进阶
    ReactNative学习笔记(一)环境搭建
    彻底禁用Chrome的“请停用以开发者模式运行的扩展程序”提示
  • 原文地址:https://www.cnblogs.com/hualimengyu/p/3986459.html
Copyright © 2020-2023  润新知