可视化编程实验报告Word文档格式.docx

上传人:b****6 文档编号:21580393 上传时间:2023-01-31 格式:DOCX 页数:17 大小:130.04KB
下载 相关 举报
可视化编程实验报告Word文档格式.docx_第1页
第1页 / 共17页
可视化编程实验报告Word文档格式.docx_第2页
第2页 / 共17页
可视化编程实验报告Word文档格式.docx_第3页
第3页 / 共17页
可视化编程实验报告Word文档格式.docx_第4页
第4页 / 共17页
可视化编程实验报告Word文档格式.docx_第5页
第5页 / 共17页
点击查看更多>>
下载资源
资源描述

可视化编程实验报告Word文档格式.docx

《可视化编程实验报告Word文档格式.docx》由会员分享,可在线阅读,更多相关《可视化编程实验报告Word文档格式.docx(17页珍藏版)》请在冰豆网上搜索。

可视化编程实验报告Word文档格式.docx

实验分析与设计(可加页)

一、实验内容描述(问题域描述)

要求:

设计一个键盘程序,当按CTRL键时,表明要画椭圆;

当按下Shift键时,表明要画

矩形。

然后单击向w键,椭圆或矩形的长度向上加10;

单击s时,椭圆或矩形的高度向下加10;

单击a键时,椭圆或矩形的长度向左加10;

单击d时,椭圆或矩形的高度向右加10;

单击←键时,整个圆形或矩形向左移动,单击→键时,整个圆形或矩形向右移动;

单击↑键时,整个圆形或矩形向上移动;

单击↓建时,矩形or圆形向下移动。

二、实验基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

#include<

windows.h>

stdlib.h>

string.h>

longWINAPIWndProc(HWNDhWnd,UINTiMessage,UINTwParam,LONGlParam);

BOOLInitWindowsClass(HINSTANCEhInstance);

BOOLInitWindows(HINSTANCEhInstance,intnCmdShow);

HWNDhWndMain;

RECTrect1;

intWINAPIWinMain(HINSTANCEhInstance,

HINSTANCEhPrevInstance,

LPSTRlpCmdLine,

intnCmdShow)

{MSGMessage;

if(!

InitWindowsClass(hInstance))

returnFALSE;

InitWindows(hInstance,nCmdShow))

while(GetMessage(&

Message,0,0,0))

{

TranslateMessage(&

Message);

DispatchMessage(&

}

returnMessage.wParam;

}

longWINAPIWndProc(HWNDhWnd,

UINTiMessage,

UINTwParam,

LONGlParam)

{HDChDC;

staticBOOLbCircle=FALSE,bRect=FALSE;

PAINTSTRUCTps;

switch(iMessage)

caseWM_KEYDOWN:

if(wParam==VK_CONTROL)

{

bCircle=TRUE;

bRect=FALSE;

rect1.left=0;

rect1.right=0;

rect1.top=0;

rect1.bottom=0;

}

elseif(wParam==VK_SHIFT)

bRect=TRUE;

bCircle=FALSE;

rect1.right=0;

elseif(wParam==VK_RIGHT)

rect1.right+=10;

if(bRect==TRUE||bCircle==TRUE)

{

InvalidateRect(hWnd,NULL,TRUE);

}

elseif(wParam==VK_DOWN)

rect1.bottom+=10;

elseif(wParam==VK_PRIOR)

{

rect1.top-=10;

rect1.bottom-=10;

elseif(wParam==VK_NEXT)

rect1.top+=10;

elseif(wParam==VK_HOME)

rect1.left-=10;

rect1.right-=10;

elseif(wParam==VK_END)

rect1.left+=10;

break;

caseWM_PAINT:

hDC=BeginPaint(hWnd,&

ps);

if(bCircle==TRUE)

{

Ellipse(hDC,rect1.left,rect1.top,rect1.right,rect1.bottom);

if(bRect==TRUE)

{Rectangle(hDC,rect1.left,rect1.top,rect1.right,rect1.bottom);

EndPaint(hWnd,&

caseWM_DESTROY:

PostQuitMessage(0);

return0;

default:

return(DefWindowProc(hWnd,iMessage,wParam,lParam));

return0;

BOOLInitWindows(HINSTANCEhInstance,intnCmdShow)

{HWNDhWnd;

hWnd=CreateWindow("

6_4"

"

鼠标显示实例程序"

WS_OVERLAPPEDWINDOW,

CW_USEDEFAULT,

0,

NULL,

hInstance,

NULL);

hWnd)returnFALSE;

hWndMain=hWnd;

ShowWindow(hWnd,nCmdShow);

UpdateWindow(hWnd);

returnTRUE;

BOOLInitWindowsClass(HINSTANCEhInstance)

{WNDCLASSWndClass;

WndClass.cbClsExtra=0;

WndClass.cbWndExtra=0;

WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);

WndClass.hIcon=LoadIcon(NULL,IDI_APPLICATION);

WndClass.hInstance=hInstance;

WndClass.lpfnWndProc=WndProc;

WndClass.lpszClassName="

;

WndClass.lpszMenuName=NULL;

returnRegisterClass(&

WndClass);

三.主要仪器设备及耗材

电脑VC++6.0软件

第二部分:

实验调试与结果分析(可加页)

一、调试过程(包括调试方法描述、实验数据记录,实验现象记录,实验过程发现的问题等)

最开头掉了#include<

windows>

导致程序错误,加上后,运行良好。

二、实验结果及分析(包括结果描述、实验现象分析、影响因素讨论、综合分析和结论等)

结果如图:

计算器设计

用MFC的向导创建编辑框,在编辑框中实现算术加、减、乘和除的运算。

用classwizard对各按钮以及编辑框进行添加变量

然后在jisuanDlg.cpp文件开头定义变量

最后在下方添加下列代码

voidCJisuanDlg:

:

OnButton1()

{

//TODO:

Addyourcontrolnotificationhandlercodehere

UpdateData(TRUE);

char*p1=m_e1.GetBuffer(m_e1.GetLength());

char*p2=m_e2.GetBuffer(m_e2.GetLength());

floata1;

a1=atof(p1);

floata2;

a2=atof(p2);

a3=a1+a2;

m_e3.Format("

%f"

a3);

UpdateData(FALSE);

OnButton2()

a3=a1-a2;

OnButton3()

a3=a1*a2;

OnButton4()

a3=a1/a2;

OnButton9()

{UpdateData(TRUE);

m_e1=_T("

"

);

m_e2=_T("

m_e3=_T("

三、主要仪器设备及耗材

电脑VC++

一开始没有加入UpdateData(TRUE)UpdateData(FALSE)等代码,导致计算结果无法刷新与显示。

这段代码是由其他同学在程序中找到的,灰体字,一开始没怎么注意,后来才发现可以执行清零功能

三、实验小结、建议及体会

通过这次上机实验,初步掌握了mfc编写对话框的基本方法,通过编写一个简单的小程序使自己对vc++有了更多的认识,对mfc编程有了更深的体会,熟悉了使用classwizard添加函数以及变量的方法,认识到了mfc与api相比的方便之处。

菜单设计

MFC编程菜单应用实验内容:

编写一个单文档应用程序在主菜单中增加【曲线】、【线宽】和【颜色】三个菜单项,【曲线】菜单中包含【正弦】和【余弦】两个菜单项;

【线宽】菜单中包含【线宽2】和【线宽3】两个菜单项;

【颜色】菜单中包含【红色】和【蓝色】两个菜单项

二、基本原理与设计(包括实验方案设计,实验手段的确定,试验步骤等,用硬件逻辑或者算法描述)

voidCMainFrame:

OnMenuitem32771()

Addyourcommandhandlercodehere

jp=0;

CClientDCdc(this);

CRectcr;

GetClientRect(&

cr);

dc.FillSolidRect(cr,RGB(255,255,255));

dc.SelectStockObject(BLACK_PEN);

for(intj=0;

j<

100;

j++)//生成正弦曲线的点坐标

lpSin[j].x=(long)(j*2*Pi/100*90);

lpSin[j].y=(long)(dfRange*sin(j*2*Pi/100))+100;

dc.Polyline(lpSin,100);

OnMenuitem32772()

jp=1;

lpSin[j].y=(long)(dfRange*cos(j*2*Pi/100))+100;

OnMenuitem32773()

{CClientDCdc(this);

HPENhp;

hp=CreatePen(PS_INSIDEFRAME,6,RGB(0,0,0));

dc.SelectObject(hp);

if(jp==1)

{for(intj=0;

else

for(intj=0;

OnMenuitem32775()

hp=CreatePen(PS_INSIDEFRAME,6,RGB(0,0,255));

{lpSin[j].x=(long)(j*2*Pi/100*90);

OnMenuitem32776()

hp=CreatePen(PS_INSIDEFRAME,6,RGB(255,0,0));

电脑VC++6.0

由于菜单的认识还不是很了解只能初步设计下菜单按键的响应函数。

在执行画笔时,每一次都要重新写一遍函数。

希望以后有待加强

通过这次试验体会菜单的制作以及画笔的使用方法,也初步掌握了菜单的修改和一些按钮的设置。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1