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     else
13     {
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如果不用,那就函数show
22   }
23   else
24   {
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     else
10     {
11
12     }
13 }
时间: 2024-07-30 07:11:12

MFC_对话框的相关文章

006.MFC_对话框_复选框_单选钮

对话框和控件复选框单选框分组框示例:三原色画图 一.建立名为Demo2的MFC工程,按照下图添加控件 并修改2个Group Box Caption属性分别为颜色.外观 修改3个Check Box Caption和ID属性分别为(红色,IDC_CHK_RED).(绿色,IDC_CHK_GREEN).(蓝色,IDC_CHK_BLUE) 修改2个Radio Box Caption和ID属性分别为(矩形,IDC_RD_RECT).(圆形,IDC_RD_ROUND) 注意:radio box 必须是连续的

用dialog在前台实现一个简单的UI对话框

<!doctype html><html lang="en"><head> <meta charset="utf-8"> <title>对话框部件(Dialog Widget)演示</title> <link rel="stylesheet" href="//apps.bdimg.com/libs/jqueryui/1.10.4/css/jquery-ui.m

bootstrap中的对话框-dialog

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-

bootstrap中的对话框-dialog-2

<!DOCTYPE html><html> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0, minimum-scale=1.0" /> <meta http-

C#WebBrowrse拦截下载对话框

为了实现这个功能,可算是折腾不少时间,网上搜素出来的结果基本都是如何屏蔽警告对话框.后来请教一个技术大牛(程序员之窗的主要作者Starts_2000),他用C++实现了,他尝试了下C#也没有解决,就忙其他的去,大牛时间一般都比较宝贵,后来我就将就用那个C++动态库,那个时候我测试环境是 win7 64位 +vs2013,后来系统环境变化成 win10 +vs2015,突然就不好使了,赶紧重新编译C++源码,各种错误,感觉怎么这么不稳定. 怎么办?总不能再让别人帮忙,下次环境变化了继续问别人? 

Webdriver实现下载功能,屏蔽掉windows弹出的对话框,FireFox下设置浏览器的属性,两种实现方式:

一.使用一个全新的FireFox浏览器打开Web应用,浏览器不带任何插件,也未对浏览器做任何默认配置,但需要对浏览器属性进行配置 // 获取浏览器的所有配置文件 ProfilesIni allProfiles = new ProfilesIni(); // "Selenium" 是之前创建的profile,不带任何插件,也未对浏览器做任何默认配置 FirefoxProfile profile = allProfiles.getProfile("selenium");

Android 对话框 Dialog

对话框 Dialog 什么是对话框 对话框是在当前的页面之上弹出的小窗口, 用于显示一些重要的提示信息, 提示用户的输入,确认信息, 或显示某种状态.如 :  显示进度条对话框, 退出提示. 对话框的特点: 1, 当前界面弹出的小窗口. 2, 用户要与它进行交互, 可以接收用户输入的信息, 也可以反馈信息给用户. 常用对话框: 1, 普通对话框 AlertDialog 2, 进度条对话框  ProgressDialog 3, 日期对话框    DatePickerDialog 4, 时间对话框

QT笔记之模态对话框及非模态对话框

模态对话框(Modal Dialog)与非模态对话框(Modeless Dialog)的概念不是Qt所独有的,在各种不同的平台下都存在.又有叫法是称为模式对话框,无模式对话框等.所谓模态对话框就是在其没有被关闭之前,用户不能与同一个应用程序的其他窗口进行交互,直到该对话框关闭.对于非模态对话框,当被打开时,用户既可选择和该对话框进行交互,也可以选择同应用程序的其他窗口交互. 在Qt中,显示一个对话框一般有两种方式,一种是使用exec()方法,它总是以模态来显示对话框:另一种是使用show()方法

Android新手入门2016(13)--阻塞对话框PopupWindow

上两章都说了非阻塞的对话框,今天说一下阻塞的对话框--PopupWindow 那么什么是阻塞什么是非阻塞呢?PopupWindow和AlertDialog有什么不同呢? 先说AlertDialog,弹出来之后,背面会变灰,并没有阻塞后台的进程,如果没特殊控制,点击后面灰暗处,弹框会消失掉的. 至于PopupWindow,则是弹出来,后面没有任何变化,并且阻塞该应用的进程,如果一直没退出,应用汇一直等待,点击后面也是没有反应的. 不知道为什么现在上传不了图,就不上传了,其实跟AlertDialog