好文档 - 专业文书写作范文服务资料分享网站

MFC06 - Visual Studio C++ MFC 对话框应用程序设计—对话框移植

天下 分享 时间: 加入收藏 我要投稿 点赞

Visual Studio C++ MFC 基于对话框的应用程序设计

—如何将一个项目中的对话框类移植到另一个项目中(详细步骤)

Botton-Edit-Menu-Picture

一、建立一个对话框应用程序项目

功能:用于求两个数的和; 内容:对话框中包含四个对象:

一个按钮:用于实现将两个数相加;

三个编辑框:两个用于输入数据,一个用于输出数据。 具体步骤如下:

1. 新建一个MFC对话框项目ex1,选应用程序类型为Dialog Base; 2. 删除窗口中系统自动生成的TODO…、OK、Cancel; 3. 将一个Button拖入窗口中,并将其Caption改为Show,ID改为IDC_BUTTON_SHOW; 4. 双击Solution Explorer中ex1.rc,右击Dialog|Add Resource…|Dialog|New; 5. 将以上ID改为IDD_DIALOG_ADD,Caption改为“求两个数的和”;

6. 删除系统自动产生的对象,并拖入三个Edit Control和一个Button至对话框中; 7. 右击对话框|Add Class,选CDialog为基类,类名为ButtonEdit|Finish; 8. 设置Button的Caption为“Add”,ID为IDC_BUTTON_ADD; 9. 设置Edit的关链变量分类为value,类型为double,名分别为editA、editB、editSum; 10. 双击Add,加入以下代码:

UpdateData(TRUE); //控制到变量传递数据 editSum=editA+editB; UpdateData(FALSE); //变量到控制传递数据 11. 双击Show,加入以下代码:

beDialog.DoModal(); ButtonEditbeDialog;

12. 并在程序开头部分加入:#include\; 13. 为方便起见,可给editA及editB赋初值:

双击Add并将程序中的editA(0)和editB(0)改为editA(1.234)和editB(5.678); 14. F5即可调试运行程序。

二、建立一个用菜单实现绘图的应用程序项目

功能:绘制国际象棋棋盘; 内容:对话框中包含二个对象:

一个Picture Control,用于显示图形; 一个Menu,用于绘制国际象棋棋盘。 具体步骤如下:

1. 新建另一个MFC对话框项目ex2,选应用程序类型为Dialog Base; 2. 删除窗口中系统自动生成的TODO?、OK、Cancel; 3. 将一个Button拖入窗口中,并将其Caption改为Show,ID改为IDC_BUTTON_SHOW; 4. 双击Solution Explorer中ex2.rc,右击Dialog|Add Resource…|Dialog|New; 5. 将以上ID改为IDD_DIALOG_MAP,Caption改为“国际象棋棋盘”;

6. 删除系统自动产生的对象,并拖入一个Picture Control对象并调整大小; 7. 右击对话框|Add Class,选CDialog为基类,类名为MenuPicture|Finish; 8. 设置Picture Control的ID为IDC_PIC;并设置关联变量名为picDraw;

1

9. 右击Resource View|Menu|AddResource|Menu|New;并将ID改为IDR_MENU_MAP; 10. 编辑菜单:File|Chess-Exit;

11. 右击Chess|Add Event Handler|MenuPicture|Add and Edit;并添加如下代码:

CRect r;

intw,h,x[8+1],y[8+1],i,j;

CWnd *pic = GetDlgItem(IDC_PIC); //取Picture的长宽信息 GetDlgItem(IDC_PIC)->GetWindowRect(&r); w=r.Width(); h=r.Height(); for(i=0;i<9;i++){ x[i]=i*w/8; y[i]=i*h/8; }

CDC *pdc = pic->GetDC(); pdc->Rectangle(r); CBrushmyBrush;

myBrush.CreateSolidBrush(RGB(0,0,0)); for(i=0;i<8;i++){ r.left=x[i]; r.right=x[i+1]; for(j=i%2;j<8;j+=2){ r.top=y[j]; r.bottom=y[j+1]; pdc->FillRect(r,&myBrush); //绘制黑方格 } }

12. 将IDD_DIALOG_MAP对话框的Menu属性选为IDR_MENU_MAP; 13. F5调试运行即可。

三、将前两个项目中的两个对话框类移植到新的项目中

功能:将以上两个对话框类移植到新项目中; 内容:主程序对话框包含两个按钮: 一个用于调出求和对话框;

另一个用于调出绘制棋盘对话框。 具体步骤如下:

? 向当前项目添加第一个对话框:

1. 建立第三个基于对话框的应用程序ex3,同样删除系统自动创建的对象; 2. 向窗口拖入两个Button,分别用于显示ex1中的Add和ex2中的Map;将其Caption

属性修改为ShowAdd和showMap,ID修改为IDC_BUTTON_SHOWADD和IDC_BUTTON_SHOWMAP;

3. 将ex1\\ex1目录下的ButtonEdit.h和ButtonEdit.cpp文件复制到ex3\\ex3目录下; 4. 在ex3工程的Solution Explorer的Header Files文件夹:

右击:|Add|Exisiting Items…|ButtonEdit.h|Add;

2

5. 6. 7. 8. 9.

同理,在Source Files中加入ButtonEdit.cpp文件;

将ex1中的对话框资源复制到当前资源中:File|Add|Existing Project|ex1\\ex1\\ex1; 双击ex1.rc;复制IDD_DIALOG_ADD;

双击ex3.rc;将以上复制的对话框粘贴过来; 双击Show Add,添加以下代码: ButtonEditbeDlg; beDlg.DoModal();

并在文件开头部分加入:#include\; 且将#include \改为#include \10. F5即可调试运行。

? 向当前项目添加第二个对话框—带菜单的对话框

1. 操作同前,复制MenuPicture.hpp和MenuPicture.cpp文件及IDD_DIALOG_MAP和

IDR_MENU_MAP;

2. 双击Show Map;添加以下代码:

MenuPicturempDlg; mpDlg.DoModal(); 并在文件开头部分加入#include\; 并将#include \改为#include \; 3. F5便可调试运行。

3

MFC06 - Visual Studio C++ MFC 对话框应用程序设计—对话框移植

VisualStudioC++MFC基于对话框的应用程序设计—如何将一个项目中的对话框类移植到另一个项目中(详细步骤)Botton-Edit-Menu-Picture一、建立一个对话框应用程序项目功能:用于求两个数的和;内容:对话框中包含四个对象:一个按钮:用于实现将两个数相加;三个编辑
推荐度:
点击下载文档文档为doc格式
97j6b0k5q29s4tl8lgrm6o2vt5lzj600coa
领取福利

微信扫码领取福利

微信扫码分享