vc++面向对象可视化编程创建窗口及填充-报告

上传人:第*** 文档编号:35523552 上传时间:2018-03-17 格式:DOC 页数:5 大小:33.08KB
返回 下载 相关 举报
vc++面向对象可视化编程创建窗口及填充-报告_第1页
第1页 / 共5页
vc++面向对象可视化编程创建窗口及填充-报告_第2页
第2页 / 共5页
vc++面向对象可视化编程创建窗口及填充-报告_第3页
第3页 / 共5页
vc++面向对象可视化编程创建窗口及填充-报告_第4页
第4页 / 共5页
vc++面向对象可视化编程创建窗口及填充-报告_第5页
第5页 / 共5页
亲,该文档总共5页,全部预览完了,如果喜欢就下载吧!
资源描述

《vc++面向对象可视化编程创建窗口及填充-报告》由会员分享,可在线阅读,更多相关《vc++面向对象可视化编程创建窗口及填充-报告(5页珍藏版)》请在金锄头文库上搜索。

1、VC+VC+面向对象可视化编程创建窗口及填充面向对象可视化编程创建窗口及填充- -报告报告一.实验目的: 理解如何创建窗口及其填充,认识创建窗口的函数。 二.实验内容: 1. 创建窗口: 程序代码#include /包含应用程序中所需的数据类型和数据结构的定义 LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); /窗口函数说明 /- 以下初始化窗口类 - int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) HWND

2、 hwnd ;MSG Msg ;WNDCLASS wndclass ;char lpszClassName = “窗口“; /窗口类名char lpszTitle= “昆工“; /窗口标题名 /窗口类的定义 wndclass.style=0; /窗口类型为默认类型 wndclass.lpfnWndProc=WndProc; /定义窗口处理函数 wndclass.cbClsExtra=0; /窗口类无扩展 wndclass.cbWndExtra=0; /窗口实例无扩展 wndclass.hInstance=hInstance; /当前实例句柄 wndclass.hIcon=LoadIcon(NU

3、LL,IDI_APPLICATION);/窗口的最小化图标为默认 图标 wndclass.hCursor=LoadCursor(NULL,IDC_ARROW) ; /窗口采用箭头光标 wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);/窗口背景 为白色 wndclass.lpszMenuName=NULL; /窗口中无菜单 wndclass.lpszClassName=lpszClassName ;/窗口类名为“窗口“ if(!RegisterClass( return FALSE ; hwnd=CreateWindow(lp

4、szClassName, /窗口类名lpszTitle, /窗口实例的标题名WS_OVERLAPPEDWINDOW, /窗口的风格CW_USEDEFAULT,CW_USEDEFAULT, /窗口左上角坐标为默认值CW_USEDEFAULT,CW_USEDEFAULT, /窗口的高和宽为默认值NULL, /此窗口无父窗口NULL, /此窗口无主菜单hInstance, /创建此窗口的应用程序的当前句柄NULL , /不使用该值); ShowWindow( hwnd, nCmdShow) ; UpdateWindow(hwnd); while( GetMessage(DispatchMessage

5、( return Msg.wParam; /消息循环结束即程序终止时将信息返回系统 LRESULT CALLBACK WndProc( HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam) switch(message) case WM_DESTROY:PostQuitMessage(0);default: /默认时采用系统消息默认处理函数return DefWindowProc(hwnd,message,wParam,lParam); return(0); 结果:出现一个名为“昆工”的白色窗口 2. 字符填充:程序代码:#include #i

6、nclude #include long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam); BOOL InitWindowsClass(HINSTANCE hInstance); BOOL InitWindows(HINSTANCE hInstance,int nCmdShow); HWND hWndMain; /主函数 int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) MSG M

7、essage;if(!InitWindowsClass(hInstance) return FALSE;if(!InitWindows(hInstance,nCmdShow)return FALSE;while(GetMessage(DispatchMessage(return Message.wParam; /消息处理函数 long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) static long nXChar,nCaps,nYChar;HDC hDC; /定义指向设备上下文的句柄 short x;TEXT

8、METRIC tm;short LnCount=6;PAINTSTRUCT PtStr; /定义指向包含绘图信息的结构体变量static char *textbuf=“昆明理工大学“,; switch(iMessage) /处理消息case WM_CREATE: /处理窗口创建消息hDC=GetDC(hWnd) ; /获取当前设备表句柄GetTextMetrics(hDC, /获取字体信息nXChar=tm.tmAveCharWidth; /获取字符宽度nYChar=tm.tmHeight+tm.tmExternalLeading;nCaps=(tm.tmPitchAndFamilyRelea

9、seDC(hWnd,hDC); /释放当前设备句柄return 0;case WM_PAINT: /处理重画消息hDC=BeginPaint(hWnd, /开始绘画for(x=0;xLnCount;x=x+1) /输出文本TextOut(hDC,nXChar,nYChar*(1+x),textbufx,lstrlen(textbufx); EndPaint(hWnd,return 0;case WM_DESTROY: /结束应用程序PostQuitMessage(0);return 0;default: /其他消息处理程序return(DefWindowProc(hWnd,iMessage,w

10、Param,lParam) ; BOOL InitWindows(HINSTANCE hInstance,int nCmdShow)/初始化窗口 HWND hWnd;hWnd=CreateWindow(“WinFill“, /生成窗口“昆工“,WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,0,CW_USEDEFAULT,0,NULL,NULL,hInstance,NULL);if(!hWnd) return FALSE;hWndMain=hWnd;ShowWindow(hWnd,nCmdShow); /显示窗口UpdateWindow(hWnd);return TRUE;

11、 BOOL InitWindowsClass(HINSTANCE hInstance) /定义窗口类 WNDCLASS WndClass;WndClass.cbClsExtra=0;WndClass.cbWndExtra=0;WndClass.hbrBackground=(HBRUSH)(GetStockObject(WHITE_BRUSH) );WndClass.hCursor=LoadCursor(NULL,IDC_ARROW);WndClass.hIcon=LoadIcon(NULL,“END“);WndClass.hInstance=hInstance;WndClass.lpfnWndProc=WndProc;WndClass.lpszClassName=“WinFill“;WndClass.lpszMenuName=NULL;WndClass.style=CS_HREDRAW|CS_VREDRAW;return RegisterClass( 运行结果:出现一个由“昆明理工大学”字样填充的名为“昆工”的白色窗口。三:窗口流程图: 略,找站长 四:四:结结果:果:1 2 五五心得体会:通过同学的帮助和找资料,终于完成此次上机实验,感觉自己编程能力还不强,以后 需要努力。

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 建筑/环境 > 工程造价

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号