zoukankan      html  css  js  c++  java
  • MFC中对话框的操作

    ①在菜单栏上加一个按钮(Dialog),点击弹出对话框。

    1.新建一个MFC项目,这里命名为sr,首先创建一个新的对话框,在资源视图里找到Dialog右键,Insert Dialog.出现新的对话框编辑界面。可以看到有两个按钮,OKCancel,自带,前者的ID  IDOK(后面要用到),后者的IDIDCANCEL,查看ID的方法,在按钮上鼠标右键,选择Properties, 我们可以对对话框进行编辑,移动按钮的位置,或添加元件,如图:

    2.双击对话框的空白处,为它添加类,选择Create a new class,  Name这里写为 dialog(随便起), OK,OK.

    3.创建菜单按钮。找到资源视图中的Menu,双击IDR_MAINFRAME,在帮助的后边空白处双击,出现对话框,Caption:  填写Dialog(名字),下面的Pop_up前面的对号取消选择(没有下级菜单)。

    4.在创建的按钮Dialog右键,ClassWizard,为它添加消息。

    先点击add function后点击edit code

    5. void CSrView::OnMenuitem32771() 函数中写代码:

     dialog  my;//创建对象

           my.DoModal();//弹出对话框、

    编译运行,有错,dialog不认识,在 View类中加入头文件.  #include “dialog.h”,编译运行,点击菜单上的Dialog按钮,弹出刚才新建的对话框。

    如果想当用户点击点击按钮OK后,弹出提示框。

    可以把刚才的代码改成下面:

    dialog  my;

           if(my.DoModal()==IDOK)

           {

                  MessageBox("hello");

           }

    ②在对话框中添加学生姓名信息,用户输入,点击OK后,学生姓名在窗口面板上显示。

    1.       回到资源视图,找到刚才建立的对话框编辑页面,画出如下效果:

     

    元件的位置随便改,按键盘上的上下左右也可以移动。

    2.为编辑框Edit添加成员变量,右键,CLASSWIZARD,选择Member Variables,双击IDC_EDIT1(这是刚才编辑框的ID)Member variable name   m_strName    Category:  Value  Variable type   OK. OK

    3.在文件视图中找到 srView.h  protected里面加入变量 CString strName;CSrView构造函数中对它初始化。

     

     

    4.void CSrView::OnMenuitem32771()函数中加入下面代码:

    strName=my.m_strName;

                  Invalidate();

    5,接下来让它显示。找到OnDraw函数,加入代码:  pDC->TextOut(20,20,strName);

    6.编译运行,输入姓名,点击OK,屏幕上显示输入的姓名。

    ③上面用的是直接传值,Edit编辑框的成员变量属性为 value ,下面用另一种方法(控件类型)增加一个编辑框,输入学号,并在屏幕上显示。

    1.       在原来的对话框编辑界面,画出如下:

     

    2.第二个编辑框右键,class wizard, Member Variables ,双击IDC_EDIT2name: m_EditID,  Category:  选择Control(控件类型),OKOK

    1.       在dialog.h里面,定义变量,public: CString strID;

    3.OK按钮添加消息,双击对话框编辑界面的OK按钮,进入到void dialog::OnOK()

    写下面代码:       m_EditID.GetWindowText(strID);

           在void CSrView::OnMenuitem32771()里面strName=my.m_strName;该条代码改为:

    strName=my.m_strName+" "+my.strID;

    4.       编译,运行,点击菜单按钮Dialog输入姓名和学号,点击OK,信息在屏幕上显示。

    5.       还有两种方法,重点改on oK函数里面的代码:

    如下:

    为了方便,通常用第三种方法,其中 IDC_EDIT2是第二个编辑框的ID

    ④编辑框内容的初始化

    1.对类dialog添加消息句柄VM_INITDIALOG,进入函数BOOL CAboutDlg::OnInitDialog()中。

    2.       在函数中添加下面代码:

           CWnd *pw=GetDlgItem(IDC_EDIT2);

           pw->SetWindowText("201258503201");

           m_strName="sun";

           this->UpdateData(false);

     

    编译,运行,发现对话框中有数据了。

    如下:

     

    原文地址:http://blog.csdn.net/sr_19930829/article/details/9399749

  • 相关阅读:
    Android 捕获异常并在应用崩溃后重启应用
    Android 浏览器 —— 使用 WebView 实现文件下载
    给 Android 研发的一些的建议
    java.util.concurrent.RejectedExecutionException
    java的关闭钩子(Shutdown Hook)
    PGP工作原理及其安全体制
    漫画:什么是红黑树?
    LINUX下IDEA等工具调试项目时提示:Unable to open debugger port
    MongoDB aggregate 运用篇(转)
    Java8系列之重新认识HashMap
  • 原文地址:https://www.cnblogs.com/hosealeo/p/4190540.html
Copyright © 2011-2022 走看看