首页 > 代码库 > MFC_对话框
MFC_对话框
1.创建对话框的窗口,分为模态对话框和非模态对话框,以下是其操作代码和其原理
1 void CMyboleView::OnDialog() //1创建菜单消息响应 2 { 3 // TODO: Add your command handler code here 4 CtestDlg dlg; //创建对话框对象,需包含类所在的头文件 5 dlg.DoModal();//模态对话框,只能点击对话框,其他不能点击,停在这一行,其他不执行,本身自带显示 6 7 /* //CtestDlg dlg;//这个要是成员变量!因为非模态对话框程序会继续进行,对象生命周期在这个函数就要结束两种方式解决1.成员变量 8 //定义指针解决,可解决生命周期的问题,点击OK窗口不是销毁,而是隐藏,会进入虚函数Onok来响应,来销毁窗口,所以要覆盖Onok虚函数 9 CtestDlg *pDlg= new CtestDlg();10 pDlg->Create(IDD_DIALOG1,this);11 pDlg->ShowWindow(SW_SHOW);//显示对话框*/ 17 }
2按键点击添加程序,实现文本框中实现加法操作
如何在单文档文件中显示一个 CButton 的对象?
在 CMainFrame::OnCreate()中定义一个 CButton 的对象 btn;然后调用 btn.Create("维新
",WS_DISABLED |WS_CHILD | WS_VISIBLE | BS_AUTO3STATE,
CRect(0,0,300,100),/*GetParen
注意点:
(1).此处 btn 不能是局部变量,否则它的生命周期太短,将不能显示。
(2).在 create 函数的第二个参数中加入 WS_VISIBLE 参数才行。否则必须调用
ShowWindow
也可以在 view 的 OnCreate 消息响应函数中加入
(3).CButton 类的定义头文件在 afxwin.h 中,而 stdafx.h 包含了 afxwin.h,所以可以直接
使用。因为 MFC 中的每一个类中都有#include "stdafx.h"的声明
1 void CtestDlg::OnBtnadd() //2按键点击添加程序 2 { 3 // 点击按钮控件生成按钮 4 /* static BOOL m_bIsCreate=FALSE; //静态变量,直接分配内存空间 5 // if(m_blsCreate==FALSE) 6 if(m_blsCreate==FALSE) 7 { 8 m_btm.Create("帅哥",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);//WS_VISIBLE如果不用,那就函数show 9 // m_blsCreate=TRUE;10 m_blsCreate=TRUE;11 }12 else13 {14 m_btm.DestroyWindow();15 // m_blsCreate=FALSE;16 m_blsCreate=FALSE;17 }*/18 19 /* if(!m_btm.m_hWnd)//判断句柄是否为空,跟窗口有关联就有值,无关联为空,最简单20 {21 m_btm.Create("帅哥",BS_DEFPUSHBUTTON|WS_VISIBLE|WS_CHILD,CRect(0,0,100,100),this,123);//WS_VISIBLE如果不用,那就函数show22 }23 else24 {25 m_btm.DestroyWindow();//销毁串口,句柄就为空啦26 }*/27 28 29 30 /*实现加法运算1*/31 /* int num1,num2,num3;32 char ch1[10],ch2[10],ch3[10];33 GetDlgItem(IDC_EDIT1)->GetWindowText(ch1,10);34 GetDlgItem(IDC_EDIT2)->GetWindowText(ch2,10);35 num1=atoi(ch1);36 num2=atoi(ch2);//字符串变整形37 num3=num1+num2;38 itoa(num3,ch3,10);//整形变字符串39 40 GetDlgItem(IDC_EDIT3)->SetWindowText(ch3);*/41 42 43 /*/*实现加法运算2*/44 /* int num1,num2,num3;45 char ch1[10],ch2[10],ch3[10];46 GetDlgItemText(IDC_EDIT1,ch1,10);//提取文本47 GetDlgItemText(IDC_EDIT2,ch2,10);48 num1=atoi(ch1);49 num2=atoi(ch2);//字符串变整形50 num3=num1+num2;51 itoa(num3,ch3,10);//整形变字符串52 SetDlgItemText(IDC_EDIT3,ch3);//设置文本*/53 54 /*/*实现加法运算3*/55 /* int num1,num2,num3;56 num1=GetDlgItemInt(IDC_EDIT1);57 num2=GetDlgItemInt(IDC_EDIT2);58 num3=num1+num2;59 SetDlgItemInt(IDC_EDIT3,num3,TRUE);*/60 61 62 /*/*实现加法运算4 最简单:操作原理:通过添加控件实现控件和成员变量之间的绑定,通过直接操作成员变量的数据类型,和直接进行操作,即使对书籍进行更新,实现加法操作*/63 UpdateData();64 m_num3=m_num1+m_num2;//这句话没法获取数据的,详情了解DoDateChange,需要更新数据65 UpdateData(FALSE); //告诉对话框控件初始化,把值放进去66 67 }
3.静态文本点击程序,需要特别注意的是静态文本需要编辑,需要勾选上Notify,单击才会有作用
1 void CtestDlg::OnNumber1() //3静态文本按键点击添加程序 2 { 3 // TODO: Add your control notification handler code here 4 CString str; 5 if(GetDlgItem(IDC_NUMBER1)->GetWindowText(str),str=="Number1")//GetDlgItem()对话框指针函数,获得控件内容,, 一定要改变 Notify 才能点击有作用 6 { 7 GetDlgItem(IDC_NUMBER1)->SetWindowText("数值1"); 8 } 9 else10 {11 12 }13 }
MFC_对话框
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。