VC++面向对象可视化编程创建窗口及填充-报告.doc_第1页
VC++面向对象可视化编程创建窗口及填充-报告.doc_第2页
VC++面向对象可视化编程创建窗口及填充-报告.doc_第3页
VC++面向对象可视化编程创建窗口及填充-报告.doc_第4页
VC++面向对象可视化编程创建窗口及填充-报告.doc_第5页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

VC+面向对象可视化编程创建窗口及填充-报告一.实验目的:理解如何创建窗口及其填充,认识创建窗口的函数。二.实验内容:1. 创建窗口:程序代码 #include /包含应用程序中所需的数据类型和数据结构的定义LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); /窗口函数说明/- 以下初始化窗口类 -int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInst,LPSTR lpszCmdLine,int nCmdShow) HWND 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(NULL,IDI_APPLICATION);/窗口的最小化图标为默认图标wndclass.hCursor=LoadCursor(NULL,IDC_ARROW) ; /窗口采用箭头光标wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);/窗口背景为白色wndclass.lpszMenuName=NULL; /窗口中无菜单wndclass.lpszClassName=lpszClassName ;/窗口类名为窗口if(!RegisterClass( &wndclass)/如果注册失败则发出警告 MessageBeep(0) ; return FALSE ; hwnd=CreateWindow ( 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 ) switch(message) case WM_DESTROY: PostQuitMessage(0); default: /默认时采用系统消息默认处理函数 return DefWindowProc(hwnd,message,wParam,lParam); return(0);结果:出现一个名为“昆工”的白色窗口2. 字符填充:程序代码:#include#include#includelong 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 Message; if(!InitWindowsClass(hInstance) return FALSE; if(!InitWindows(hInstance,nCmdShow)return FALSE; while(GetMessage(&Message,0,0,0)/消息循环 TranslateMessage(&Message); DispatchMessage(&Message); return Message.wParam;/消息处理函数long WINAPI WndProc(HWND hWnd,UINT iMessage,UINT wParam,LONG lParam) static long nXChar,nCaps,nYChar; HDC hDC; /定义指向设备上下文的句柄 short x; TEXTMETRIC tm; short LnCount=6; PAINTSTRUCT PtStr; /定义指向包含绘图信息的结构体变量 static char *textbuf= 昆明理工大学, ;switch(iMessage) /处理消息case WM_CREATE: /处理窗口创建消息 hDC=GetDC(hWnd) ; /获取当前设备表句柄 GetTextMetrics(hDC,&tm); /获取字体信息 nXChar=tm.tmAveCharWidth; /获取字符宽度 nYChar=tm.tmHeight+tm.tmExternalLeading; nCaps=(tm.tmPitchAndFamily&1?3:2)*nXChar/2; ReleaseDC(hWnd,hDC); /释放当前设备句柄 return 0; case WM_PAINT: /处理重画消息 hDC=BeginPaint(hWnd,&PtStr); /开始绘画 for(x=0;xLnCount;x=x+1) /输出文本 TextOut(hDC,nXChar,nYChar*(1+x),textbufx,lstrlen(textbufx); EndPaint(hWnd,&PtStr); return 0; case WM_DESTROY: /结束应用程序 PostQuitMessage(0); return 0; default: /其他消息处理程序 return(DefWindowProc(hWnd,iMessage,wParam,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;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.lpszMenu

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论