MFC入门操作

1.新建MFC文件

  1. 创建新项目,选择“MFC应用”
  2. 应用程序类型选“基于对话框”,点“完成”

2.显示界面

  1. 资源文件
  2. .rc文件
  3. Dialog文件下的_dialog文件

3.编辑框

        点右键属性可以看到名字,IDC_EDIT1

        给编辑框加变量:在头文件,Dlg.h,类定义中加

private:

CString str;

        变量关联编辑框,在源文件,Dlg.cpp文件中,在对话框定义的DoDataExchange中

DDX_Text(pDX,IDC_EDIT1,str);

        在其他函数中用编辑框中的数据,使用ss进行计算

double ss=_tstof(str);

将数据显示在编辑框中

str.Format(_T("%f"),ss);

4.按钮

双击按钮

UpdateData()代表更新编辑框中的内容,并赋给变量,TRUE代表取到这个值

UpdateData(TRUE);

给str的内容后面再加abc

str = str+_T(“abc”);

str = “ ”;//为空

更新关掉

UpdateData(FALSE);

5.删除

  1. .h文件中删除private和public文字框和按钮内容
  2. .cpp文件中按钮1按钮2的代码删掉
  3. BEGIN_MESSAGE_MAP中的ON_BN_CLICKED()删除
  4. DoDataExchange()中的DDX_Text()删掉

6.输出TXT文件

        以下代码写在.cpp文件的按键函数下

// 创建一个CStdioFile对象

      CString FileName = _T("D://AAAA.txt");//文件路径

      CStdioFile fileWrite;

      if (!fileWrite.Open(FileName, CFile::modeWrite | CFile::modeCreate))

      {

             AfxMessageBox(_T("无法打开文件"));

             return;

      }

      //实现功能

      fileWrite.WriteString(VMmin);//VMmin变量是CString类型

      fileWrite.Write(&Space, sizeof(Space));//Space是char类型

      fileWrite.WriteString(VMmax);

      // 关闭文件

      fileWrite.Close();

7.CString数据类型与int、double等数据类型转换

CString数据类型转为int、double等

CString str;
int a;
a=_ttol(str);//int类型


CString strValue = _T("123.45");
double doubleValue = _tstof(strValue);
// 或者使用 _tcstod 函数,它更安全,因为它允许指定转换结束的位置
double doubleValue = _tcstod(strValue, nullptr);

int、double等转化为CString数据类型

CString str;

int a;

str.Format(_T(“%d”),a);
//str.Format(_T(“%f”),a);

8.图像添加

  1. 向界面添加Picture control控件
  2. 在资源视图,右键添加资源,选择Bitmap导入图片
  3. 将picture control控件的类型改为Bitmap,图像选择之前导入的图片ID

9.菜单添加

资源视图,.rc文件右键添加资源,选择Menu,新建

对菜单进行编辑

在Dialog这里,右键属性,在菜单选中刚才编辑的Memu

10.更改控件的大小

在.cpp文件中,OnInitDialog()函数下

CWnd* pWnd;

pWnd=GetDlgItem(控件ID);

pWnd->SetWindowPos(NULL,0,0,800,800,SWP_NOZORDER|SWP_NOMOVE);//800指像素大小

11.类

在解决方案资源管理器中点文件名右键,添加,类

12.设置图片位置和大小

  1. 选择控件,右键添加变量,设置变量名称,如ourplane
  2. 在.cpp文件下的OnInitDialog()函数下
OurPlane.SetWindowPos(nullptr,100,150,30,30,SWP_NOZORDER);//控件位于(100,150)像素,大小30×30像素

13.图片移动(定时器)

在Dlg.h文件的public中定义图片位置坐标

 int Our_x = 100;

 int Our_y = 200;

双击开始按键,跳到.cpp文件中

void CMFCAttackZone1Dlg::OnBnClickedButtonSta()

{

      //启动ID为1的定时器,定时时间为1秒

      SetTimer(1, 1000, NULL);//1000代表1000毫秒,1代表ID

}

双击暂停按键,跳到.cpp文件中

void CMFCAttackZone1Dlg::OnBnClickedButtonStop()

{

      KillTimer(1);//1代表计时器ID

}

设置图片控件变量,右键点击图片控件,选择添加变量,为其命名OurPlane

对话框右键添加类向导,选择消息,在列表内找到WM_TIMER双击添加,在.cpp文件中的OnTimer()函数下

   if (nIDEvent == 1)

      {

             Our_x = Our_x + 10;//我方移动速度

             if (Our_x > 400)//移动范围

             {

                    Our_x = 100;

             }

             OurPlane.SetWindowPos(nullptr, Our_x, 200, 30, 30, SWP_NOZORDER);//重新绘制图片

      }

14.图形绘制

             在.cpp文件的OnPaint()函数的else里,注意把CDialogEx::OnPaint();删除

//定义dc

CPaintDC dc(this);

//创建一个画笔和画刷

              CPen pen(PS_SOLID,2,RGB(0,255,0));//创建一个绿色画笔,宽度为2,用于画线

              CBrush brush(RGB(255,0,0));//创建一个红色画刷,用于填充

              // 选择画笔和画刷到设备上下文中

              dc.SelectObject(&pen);

              dc.SelectObject(&brush);

              // 假设圆心坐标是 CPoint center(xCenter, yCenter)

              CPoint center(Our_x, Our_y); // 这里的 Our_x 和 Our_y 是圆心的横纵坐标

              int radius = 20;     // 圆的半径

              // 计算边界框的坐标

              int left = center.x - radius;   // 圆左边界x坐标

              int top = center.y - radius;    // 圆上边界y坐标

              int right = center.x + radius;  // 圆右边界x坐标

              int bottom = center.y + radius; // 圆下边界y坐标

              // 绘制圆

              dc.Ellipse(left, top, right, bottom);

如果需要绘制第二个圆,在后面继续写

              dc.SelectObject(&pen);

              dc.SelectObject(&brush);

dc.Ellipse(left, top, right, bottom);

在做动画需要不断刷新窗口时,需要在.cpp文件中的OnTimer()函数下

InvalidateRect(nullptr); // 通知窗口重绘

VS2010之MFC入门到精通教程的pdf,共306页 ,10大章节,55小节。完整有图版 第一部分:VS2010/MFC 开发环境 VS2010/MFC 编程入门之前言 VS2010/MFC 编程入门之一(VS2010 与MSDN 安装过程图解) 第二部分:VS2010/MFC 应用程序框架 VS2010/MFC 编程入门之二(利用MFC 向导生成单文档应用程序框架) VS2010/MFC 编程入门之三(VS2010 应用程序工程中文件的组成结构) VS2010/MFC 编程入门之四(MFC 应用程序框架分析) VS2010/MFC 编程入门之五(MFC 消息映射机制概述) 第三部分:对话框 VS2010/MFC 编程入门之六(对话框:创建对话框模板和修改对话框属性) VS2010/MFC 编程入门之七(对话框:为对话框添加控件) VS2010/MFC 编程入门之八(对话框:创建对话框类和添加控件变量) VS2010/MFC 编程入门之九(对话框:为控件添加消息处理函数) VS2010/MFC 编程入门之十(对话框:设置对话框控件的Tab 顺序) VS2010/MFC 编程入门之十一(对话框:模态对话框及其弹出过程) VS2010/MFC 编程入门之十二(对话框:非模态对话框的创建及显示) VS2010/MFC 编程入门之十三(对话框:属性页对话框及相关类的介绍) VS2010/MFC 编程入门之十四(对话框:向导对话框的创建及显示) VS2010/MFC 编程入门之十五(对话框:一般属性页对话框的创建及显示) VS2010/MFC 编程入门之十六(对话框:消息对话框) VS2010/MFC 编程入门之十七(对话框:文件对话框) VS2010/MFC 编程入门之十八(对话框:字体对话框) VS2010/MFC 编程入门之十九(对话框:颜色对话框) 第四部分:常用控件 VS2010/MFC 编程入门之二十(常用控件:静态文本框) VS2010/MFC 编程入门之二十一(常用控件:编辑框Edit Control) VS2010/MFC 编程入门之二十二(常用控件:按钮控件Button、Radio Button 和Check Box) VS2010/MFC 编程入门之二十三(常用控件:按钮控件的编程实例) VS2010/MFC 编程入门之二十四(常用控件:列表框控件ListBox) VS2010/MFC 编程入门之二十五(常用控件:组合框控件Combo Box) VS2010/MFC 编程入门之二十六(常用控件:滚动条控件Scroll Bar) VS2010/MFC 编程入门之二十七(常用控件:图片控件Picture Control) VS2010/MFC 编程入门之二十八(常用控件:列表视图控件List Control 上) VS2010/MFC 编程入门之二十九(常用控件:列表视图控件List Control 下) VS2010/MFC 编程入门之三十(常用控件:树形控件Tree Control 上) VS2010/MFC 编程入门之三十一(常用控件:树形控件Tree Control 下) VS2010/MFC 编程入门之三十二(常用控件:标签控件Tab Control 上) VS2010/MFC 编程入门之三十三(常用控件:标签控件Tab Control 下) 第五部分:菜单、工具栏与状态栏 VS2010/MFC 编程入门之三十四(菜单:VS2010 菜单资源详解) VS2010/MFC 编程入门之三十五(菜单:菜单及CMenu 类的使用) VS2010/MFC 编程入门之三十六(工具栏:工具栏资源及CToolBar 类) VS2010/MFC 编程入门之三十七(工具栏:工具栏的创建、停靠与使用) VS2010/MFC 编程入门之三十八(状态栏的使用详解) 第六部分:文档、视图和框架 VS2010/MFC 编程入门之三十九(文档、视图和框架:概述) VS2010/MFC 编程入门之四十(文档、视图和框架:各对象之间的关系) VS2010/MFC 编程入门之四十一(文档、视图和框架:分割窗口) 第七部分:MFC 常用类 VS2010/MFC 编程入门之四十二(MFC 常用类:CString 类) VS2010/MFC 编程入门之四十三(MFC 常用类:CTime 类和CTimeSpan 类) VS2010/MFC 编程入门之四十四(MFC 常用类:定时器Timer) VS2010/MFC 编程入门之四十五(MFC 常用类:CFile 文件操作类) VS2010/MFC 编程入门之四十六(MFC 常用类:MFC 异常处理) 第八部分:字体和文本输出 VS2010/MFC 编程入门之四十七(字体和文本输出:CFont 字体类) VS2010/MFC 编程入门之四十八(字体和文本输出:文本输出) 第九部分:图形图像 VS2010/MFC 编程入门之四十九(图形图像:CDC 类及其屏幕绘图函数) VS2010/MFC 编程入门之五十(图形图像:GDI 对象之画笔CPen) VS2010/MFC 编程入门之五十一(图形图像:GDI 对象之画刷CBrush) 第十部分:Ribbon 界面开发 VS2010/MFC 编程入门之五十二(Ribbon 界面开发:创建Ribbon 样式的应用程序框架) VS2010/MFC 编程入门之五十三(Ribbon 界面开发:为Ribbon Bar 添加控件) VS2010/MFC 编程入门之五十四(Ribbon 界面开发:使用更多控件并为控件添加消息处理函数)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值