第一范文网 - 专业文章范例文档资料分享平台

2012级中国石油大学VC++实验报告

来源:用户分享 时间:2025/6/11 7:44:13 本文由loading 分享 下载这篇文档手机版
说明:文章内容仅供预览,部分内容可能不全,需要完整文档或者需要复制内容,请下载word后使用。下载word有问题请添加微信号:xxxxxxx或QQ:xxxxxx 处理(尽可能给您提供完整文档),感谢您的支持与谅解。

Visual C++面向对象与可视化程序设计实验报告

{ MessageBeep(0) ; return FALSE ; } //---------------- 创建窗口 ------------------- hwnd=CreateWindow ( // _T(\ lpszClassName, //窗口类名 lpszTitle, //窗口实例的标题名

WS_OVERLAPPEDWINDOW, //窗口的风格

CW_USEDEFAULT,

CW_USEDEFAULT, //窗口左上角坐标为缺省值 CW_USEDEFAULT, CW_USEDEFAULT, //窗口的高和宽为缺省值 NULL, //此窗口无父窗口 NULL, //此窗口无主菜单 hInstance, //创建此窗口的应用程序的当前句柄 NULL //不使用该值 ); //--------------- 显示窗口 ---------------------- ShowWindow( hwnd, nCmdShow) ; //-------------- 绘制用户区 --------------------- UpdateWindow(hwnd); //--------------- 消息循环 ---------------------- while( GetMessage(&Msg, NULL, 0, 0)) { TranslateMessage( &Msg) ; DispatchMessage( &Msg) ; } return Msg.wParam; //消息循环结束即程序终止时将信息返回系统 }

//窗口函数

LRESULT CALLBACK WndProc ( HWND hwnd, UINT message, WPARAM wParam, LPARAM lParam ) { HDC hDC; //定义指向设备的句柄 HBRUSH hBrush; //定义指向画刷的句柄 HPEN hPen; //定义指向画笔的句柄 PAINTSTRUCT PtStr; //定义指向包含绘图信息的结构变量 POINT points1[3],points2[3],points3[3],points4[3];

9

Visual C++面向对象与可视化程序设计实验报告

points1[0].x=10; points1[0].y=10; points1[1].x=100; points1[1].y=10; points1[2].x=55; points1[2].y=55; points2[0].x=55; points2[0].y=55; points2[1].x=100; points2[1].y=10; points2[2].x=100; points2[2].y=100; points3[0].x=100; points3[0].y=100; points3[1].x=55; points3[1].y=55; points3[2].x=10; points3[2].y=100; points4[0].x=10; points4[0].y=100; points4[1].x=55; points4[1].y=55; points4[2].x=10; points4[2].y=10;

switch(message) { case WM_PAINT: //处理绘图消息 hDC=BeginPaint(hwnd,&PtStr); SetMapMode(hDC,MM_ISOTROPIC); //设置映像模式 SetWindowExtEx(hDC,50,50,NULL); SetViewportExtEx(hDC,100,500,NULL); hBrush=(HBRUSH)CreateSolidBrush(RGB(0,100,100)); SelectObject(hDC,hBrush); Polygon(hDC,points1,3); hBrush=(HBRUSH)CreateSolidBrush(RGB(100,0,100)); SelectObject(hDC,hBrush); Polygon(hDC,points2,3); hBrush=(HBRUSH)CreateSolidBrush(RGB(100,100,100)); SelectObject(hDC,hBrush); Polygon(hDC,points3,3); hBrush=(HBRUSH)CreateSolidBrush(RGB(100,100,0)); SelectObject(hDC,hBrush); Polygon(hDC,points4,3);

10

Visual C++面向对象与可视化程序设计实验报告 hPen=CreatePen(PS_SOLID,2,RGB(0,255,255)); SelectObject(hDC,hPen); MoveToEx(hDC,10,10,NULL); LineTo(hDC,100,10);

hPen=CreatePen(PS_SOLID,2,RGB(0,255,0)); SelectObject(hDC,hPen);

MoveToEx(hDC,100,10,NULL); LineTo(hDC,100,100);

hPen=CreatePen(PS_SOLID,2,RGB(0,0,255)); SelectObject(hDC,hPen);

MoveToEx(hDC,100,100,NULL); LineTo(hDC,10,100);

hPen=CreatePen(PS_SOLID,2,RGB(255,255,0)); SelectObject(hDC,hPen);

MoveToEx(hDC,10,100,NULL); LineTo(hDC,10,10);

hPen=CreatePen(PS_SOLID,2,RGB(255,0,255)); SelectObject(hDC,hPen); MoveToEx(hDC,10,10,NULL); LineTo(hDC,100,100);

hPen=CreatePen(PS_SOLID,2,RGB(255,0,0)); SelectObject(hDC,hPen);

MoveToEx(hDC,100,10,NULL); LineTo(hDC,10,100);

hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH); //深灰色刷 SelectObject(hDC,hBrush);

Rectangle(hDC,150,100,200,150); DeleteObject(hBrush); DeleteObject(hPen); EndPaint(hwnd,&PtStr); //结束绘图 return 0;

case WM_DESTROY:

PostQuitMessage(0);

default: //缺省时采用系统消息缺省处理函数 return DefWindowProc(hwnd,message,wParam,lParam); }

return(0);

11

Visual C++面向对象与可视化程序设计实验报告

}

(2) 总结在Windows 程序中绘制图形的基本操作步骤;

(1)分别定义指向设备上下文、画刷、画笔的句柄,定义指向包含绘图信息的结构体变量。

(2)在处理绘图消息的时候首设置好映像模式,编写绘图程序时先选择画笔与画刷。

(3)在编写绘图程序。

(4)绘图程序写完后释放画刷画笔句柄,结束绘图程序。

(3) 总结实验的心得体会,实验中遇到的困难以及解决的方法等。

实验刚开始,对于实验的基本操作不够熟悉。尤其是在对画笔和画刷的初始化上没有足够的认识,导致浪费了一些时间。经过一节课的摸索逐渐的熟悉了画刷和画笔的使用。有了对画笔的使用基础,对于各种绘图函数都能灵活运用。在绘制多边形时,对于其中要求的坐标表示的概念比较模糊,在同学的帮助下才知道需要先定义一个包含坐标的数组,然后在绘制图形时进行引用便行了。

12

搜索更多关于: 2012级中国石油大学VC++实验报告 的文档
2012级中国石油大学VC++实验报告.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.diyifanwen.net/c01ith1e9g06r0tb505js_3.html(转载请注明文章来源)
热门推荐
Copyright © 2012-2023 第一范文网 版权所有 免责声明 | 联系我们
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:xxxxxx 邮箱:xxxxxx@qq.com
渝ICP备2023013149号
Top