• MFC 对话框编程 总结


    对话框创建方法:

          a. 先在Resource View 下 工程的Dialog文件夹中 右键  Insert Dialog 或Insert Resouce-> 选中 Dialog

          b. 然后在该对话框控件中,右键-》Add Class, 创建一个与之对应的类(如CTestDlg)。在MFC中,对资源的操作通常都是通过一个与资源相关的类来完成的。

    使用对话框:

    1.  在要使用的文件中添加 b中生成的对话框类的.h文件,根据对话框类型,

            a.  若使用 模态(Modal)对话框( 当对话框显示时,程序暂停,直到关闭这个对话框后,才能继续执行),则使用

    CTestDlg dlg;
    dlg.DoModal();

            b. 若使用 非模态对话框,则使用

    // CTestDlg dlg;
    //dlg.DoModal();
    
    CTestDlg *pDlg = new CTestDlg;
    pDlg->Create(IDD_DIALOG1,this);
    pDlg->ShowWindow(SW_SHOW);

    2. 编辑控件的访问:

        方法:添加完编辑控件后, 右键该控件->Add Variable ,添加与该控件相对应的成员变量(可以是值类型也可以是控件类型),来控制控件。

     使用值类型的变量时,若要更新对话框中的控件,则可通过:

            a. 使用UpdateData(true); 根据控件上的内容更新变量值;

            b. 使用UpdateData(false); 根据变量值更新控件。

    如:

    void CTest::OnBnClickedOk()
    {
        // TODO: Add your control notification handler code here
       UpdateData(true);//先由控件中的值 更新 变量
       sum = n1 + n2;
       UpdateData(false); //再 根据变量值  更新 控件
    }

    3. 对话框标题栏中的 关闭 按钮 设置显示方法:右键对话框->Properties->System Menu 设为true.

    4. 使用 Radio Button 控件。

         a. 先用一个Group-box 盛放这些 Radio Button . 然后对第一个Button的属性->Group 设为 true。表示这些Button 为一个组了,只能选中组中的一个。

         b. 为Radio button1 添加一个int 型 成员变量m_Radio,这个变量的值将代表整个Group.(0 -Radio1   1 -Radio2 ....)

         b. 要想使第一个Radio Button 默认被选中,可以再OnInitDialog()函数中 添加:

        CButton* radio=(CButton*)GetDlgItem(IDC_Income); //设置Radio Button1被选中
        radio->SetCheck(1);

           使得 Radio Button1 被选中。其他方法请看:http://paulfzm.iteye.com/blog/967691 

    5. 设置 Text Control  显示的值:

    GetDlgItem(IDC_Text1 )->SetWindowText("收入:");

    6. 显示提示框:

          AfxMessageBox("XXXX !");

    7. 有关 List Control 的用法,可参考 :http://blog.csdn.net/seven407/article/details/5391521

       要得到List Control中一行的值,可以

        a . 先在 OnInitDialog()中添加:m_listCtrl.SetExtendedStyle( m_listCtrl.GetExtendedStyle() | LVS_EX_FULLROWSELECT );

      使得默认的ListControl只能点击第一列来选中想选中的项,变为点击后直接自动选择一行的功能。

        b. 然后使用 

      POSITION  ps = m_listCtrl.GetFirstSelectedItemPosition();//先获得首行的位置
      nIndex = m_listCtrl.GetNextSelectedItem(ps);//再获得所选行的下标

    8. Edit Control 换行:在字符串中使用 \r\n  而不是 \n.

       

  • 相关阅读:
    GeoServer发布Shapfile、PostGIS数据
    Geoserver+Openlayers+MySQL设计思想,GeoServer服务器搭建(Docker构建镜像)
    Linux 输入输出重定向, &>file, 2>&1, 1>&2
    Git常用命令
    Java 操作 HBase 教程
    NATAPP--实现SSH内网穿透
    Spring boot banner
    ingress 密码验证
    rook 记录
    容器网络之网桥
  • 原文地址:https://www.cnblogs.com/wenshanzh/p/2580039.html
Copyright © 2020-2023  润新知