手把手教你建立绘制圆形的MFC项目

手把手教你建立绘制圆形的MFC项目

0.说明

第一次接触的朋友通过实践此教程可以初步掌握建立MFC项目绘制基本图形的方法,本教程实现了正真意义上的手把手教,所以有些繁琐,但对于初学者来说是件好事。

先学会建立项目,在学会搭建自己想要的界面,最后是算法设计与实现

本教程重心在于前两步,先一步一步做出个可运行的壳出来,这对我们继续学习会有更大的信心与成就感哟

建议渴望快速掌握的你拿起电脑,一步一步跟着做,效果会更好哟,我会将原项目代码上传到CSDN博客【我的资源】,需要的朋友可以自行下载

本教程借用绘制圆形来展示操作流程,达到的效果如下图所示

1)主界面

2)点击【圆的绘制】-》弹出子菜单【中点Bresenham算法】-》弹出对话框

3)输入200,得到圆形

1.建立项目

1)在Windows10操作系统下打开VC++6.0,单击菜单【File】->单击【New】(如下图所示)

2)此时会弹出【New】对话框,单击选择【MFC AppWizard (exe)】->在【Project Name:】的下方填上你想要的项目名称,本例子使用【MbCircle】作为项目名(如图所示)

3)单击【OK】会弹出对话框,单击【Finish】再次弹出对话框,单击【OK】,项目建立成功(成功建立界面如下图所示)

4)设置项目版本,单击【Build】->【Set Active Configuration】,单击【MbCircle -Win32 Release】,单击【OK】,(如下2张图所示)

5)按【Ctrl+F5】运行项目,这是MFC框架为你自动生成的界面(如下所示),接下来只需要修改相应类即可

2.建立需要的对话框

1)单击界面左侧的【ResourceView】->右击文件夹【Dialog】->单击【Insert Dialog】,结果如下所示

2)拖拽悬浮框中的部件,设计需要的对话框,拖拽一个【Static Text】(图标是【Aa】),再拖一个【Edit Box】(图标是【ab|】)

3)右键【Static】->单击【Properties】->修改【Caption】,如下所示

4)为对话框建立相应的类:双击对话框任意位置,会弹出对话框,点击【OK】,会弹出【New Class】对话框,修改【Name】,效果如下,单击【Ok】即可

5)建立对话框与对话框类的变量对应:单击【View】->【MFC ClassWizard】->【Member Variables】->双击【IDC_EDIT1】->修改【Member variable name】与【Variable type】,如下所示,然后一路【OK】即可

3.添加运行界面的菜单选项

1)单击【ResourceView】->双击文件夹【Menu】->双击【IDR_MBCIRTYPE】->双击菜单栏虚线框->修改【Caption】,效果如下

2)单击【圆的绘制】->双击其子菜单的虚线矩形框->修改【ID】,【Caption】,效果如下

4.建立消息映射

1)单击【View】->【MFC ClassWizard】->【Message Map】。依次选择框【Class name】,【Object IDs】,【Messages】中的内容(一定按顺序, 选择内容如下)

2)单击【Add Function】->单击【OK】->单击【Edit Code】编辑函数

3)单击【FileView】->【SourceFiles】->【MbCircleView.cpp】->添加头文件【InputDlg.h】

在该cpp文件找到【OnMENUITEMMBCircle()】函数,初步编辑,添加内容如下

void CMbCircleView::OnMENUITEMMBCircle()

{

// TODO: Add your command handler code here

InputDlg dlg;//定义输入框对象

dlg.DoModal();//该函数是对话框显示

}

4)运行项目-》单击菜单【圆的绘制】-》【中点Bresenham算法】-》若是弹出对话框效果如下,说明你到目前为止操作正确。到此,关于界面设计全部完成,接下来是算法设计

5.算法设计

该教程重心在让人掌握MFC界面设计,算法不是此教程重点(可直接复制)

本例采用“中点Bresenham算法”

1)步骤如下

1.输入圆的半径R。

2.计算初始值d=1-R、x=0、y=R。

3.绘制点(x,y)及其在八分圆中的另外七个对称点。

4.判断d的符号。若d<0,则先将d更新为d+2x+3,再将(x,y)更新为(x+1,y);否则先将d更新为d+2(x-y)+5,再将(x,y)更新为(x+1,y-1)。

5.当x

2)在【MbCircleView.h】中添加保护型对象

同时添加公有函数

3)在【MbCircleView.cpp】完善函数

添加宏定义与相应头文件,该头文件若是之前添加过就不必再次添加

完善getMaxX(),getMaxY()

完善circlePoint(double x,double y)

完善MbCircle()

修改完善OnMENUITEMMBCircle

6.运行测试

运行项目,输入半径200,效果如下

初次使用一个软件,是最痛苦的了,跟着例子做,完全一样,还是无法运行,所以以后每次学习新的案例时,先把源码跑一遍,可以运行的话,再上手实践一遍,这样不会打击自信心,效率也高。

为了不让其他人也把时间浪费在简单的界面设计与项目搭建上,特地写了这篇博客,希望能帮到你

相关推荐

常见跨境支付平台优劣对比/手续费有哪些?-【OpenCart中文官网】
国内有真正的365平台吗

常见跨境支付平台优劣对比/手续费有哪些?-【OpenCart中文官网】

📅 07-23 👁️ 9103
​​2025年长沙游戏开发公司TOP 10排名​
365bet365打不开

​​2025年长沙游戏开发公司TOP 10排名​

📅 08-05 👁️ 7875
AMD、NVIDIA显卡HDR测试:N卡性能平均损失10%,A卡损失2%
国内有真正的365平台吗

AMD、NVIDIA显卡HDR测试:N卡性能平均损失10%,A卡损失2%

📅 09-06 👁️ 7723
户户通重新授权需要多久
365bet365打不开

户户通重新授权需要多久

📅 08-12 👁️ 9440