windows复习资料.doc_第1页
windows复习资料.doc_第2页
windows复习资料.doc_第3页
windows复习资料.doc_第4页
windows复习资料.doc_第5页
全文预览已结束

下载本文档

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

文档简介

1、创建一个编辑框控件和两个按钮控件,它们分别是“显示字符”和“显示字符数”,在此编辑框中输入某一个字符串,单击“显示字符”按钮,在另外一个输出框中输出此字符串;单击“显示字符数”按钮,在输出框中显示该字符串的字符数。如图所示,是在上面的编辑框中输入字符串Huang Weitong后,单击“字符数”按钮,在第二个编辑框中显示字符串Huang Weitong的long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam) case WM_CREATE:/窗口初始化消息.hEdit1=CreateWindow(EDIT,/创建EDIT对象.NULL,/无标题.WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER,130,20,300,30, hWnd, (HMENU)IDE_1,/编辑框标识hInst, NULL);hEdit2=CreateWindow(EDIT,/创建EDIT编辑框.NULL,WS_CHILD|WS_VISIBLE|ES_LEFT|WS_BORDER,130,70,300,30, hWnd,(HMENU)IDE_2,/编辑框标识hInst, NULL);hBtn1=CreateWindow(BUTTON,/创建BUTTON对象.显示,/标题WS_CHILD|WS_VISIBLE,130,120,100,70,hWnd,(HMENU)IDB1,/标识hInst,NULL);hBtn2=CreateWindow(BUTTON,/创建BUTTON对象.字符数,/标题.WS_CHILD|WS_VISIBLE,330,120,100,70,hWnd,(HMENU)IDB2,/标识.hInst, NULL);break;case WM_COMMAND: switch(LOWORD(wParam) case IDE_1:if(HIWORD(wParam)=EN_SETFOCUS)SetFocus(hEdit1);break;case IDE_2:if(HIWORD(wParam)=EN_SETFOCUS)SetFocus(hEdit2);break;case IDB1:/单击显示按钮.iMax=GetWindowTextLength(hEdit1)+1;/得到输入字符串的长度.GetWindowText(hEdit1,cInput,iMax);/得到输入字符串SetWindowText(hEdit2,cInput);/输出.break;case IDB2:/单击字符数按钮.iMax=GetWindowTextLength(hEdit1)+1;/得到输入字符串的长度._ltoa(long)(iMax-1),cImax,10);/转化为字符.SetWindowText(hEdit2,cImax);/输出.break; break;case WM_DESTROY:/退出.PostQuitMessage(0);break;default:return(DefWindowProc(hWnd,iMessage,wParam,lParam);return 0;编写一个窗口应用程序,其中有一个VC菜单项,该菜单下面有“显示”、“隐藏”、“退出”选项,当选择“显示”对话框时,窗口中显示一个对话框,在对话框中显示“我们一起来学习VC”,如图6-9所示。当选择“隐藏”选项时,对话框消失,选择“退出”选项时,退出应用程序的运行。1. #include 2. #include 6_6.h3. Menu MENU DISCARDABLE/定义菜单条4. 5. POPUP 文件(&F)/定义文件弹出菜单6. MENUITEM 显示, IDM_SHOW/定义显示菜单7. MENUITEM 隐藏, IDM_HIDE/定义隐藏菜单8.MENUITEM SEPARATOR/定义分割条9.MENUITEM 退出, IDM_EXIT/定义退出菜单10. 11. 12. Show DIALOG 50,50,100,30/定义Show对话框/样式:细实线边框,弹出式13. STYLE DS_MODALFRAME|WS_POPUP|WS_CAPTION|WS_VISIBLE.14. CAPTION /无标题15. FONT 12, “楷体”/定义对话框中的文本字体类型和大小16. /输出字符串.-1为标识,13为X坐标,10为Y坐标,80为宽度,10为高度17. CTEXT 我们一起来学习VC+,-1,13,10,80,1018. #include #include 6_6.hlong WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam);BOOL CALLBACK DlgProc(HWND,UINT,WPARAM,LPARAM);/对话框处理函数HWND hDlg;/定义对话框句柄HINSTANCE hInst;/定义应用程序实例句柄int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nCmdShow) while(GetMessage(&Message,0,0,0) if(!IsDialogMessage(hDlg,&Message) /若是对话框消息,发往对话框处理函数TranslateMessage(&Message);/消息循环DispatchMessage(&Message); return Message.wParam;long WINAPI WndProc(HWND hWnd,UINT iMessage,WPARAM wParam,LPARAM lParam)switch(iMessage) case WM_COMMAND: switch(LOWORD(wParam) case IDM_SHOW:/点击Show菜单 hDlg=CreateDialog(hInst,Show,hWnd,(DLGPROC)DlgProc);/显示对话框 break; case IDM_HIDE:/点击Hide菜单 DestroyWindow(hDlg);break;/删除对话框 case IDM_EXIT:/点击Exit菜单 SendMessage(hWnd,WM_DESTROY,0,0); break; /发送退出消息 break; case WM_DESTROY:/退出 PostQuitMessage(0); break;default: return(DefWindowProc(hWnd,iMessage,wParam,lParam); return 0;位图操作示例。本例调用一幅图片,并在用户窗口区上显示1. #include #include 2. #include #include 3. LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);4. HDC hdc, hdcmem;/设备环境句柄和内存设备环境句柄5. HBITMAP hBm;/位图句柄6. BITMAP bm;/BITMAP结构7. int WINAPI WinMain(,)8. HWND hwnd ; MSG Msg ; WNDCLASS wndclass ;9. char lpszClassName = 位图;10. char lpszTitle= Example_For_BitMap;11. wndclass.style = 0;12. 13. wndclass.lpszClassName = lpszClassName;14. if( !RegisterClass( &wndclass)15.MessageBeep(0) ;return FALSE ;16. hwnd = CreateWindow(,) ;17. hBm=LoadBitmap(hInstance,forest);/加载位图18. GetObject(hBm,sizeof(BITMAP),(LPVOID)&bm);/获取位图尺寸19. ShowWindow( hwnd, nCmdShow) ; UpdateWindow(hwnd); 20. while(GetMessage(&Msg, NULL, 0, 0)21. TranslateMessage( &Msg) ; DispatchMessage( &Msg) ;22. return Msg.wParam;23. LRESULT CALLBACK WndProc(,)PAINTSTRUCT ps; switch(message) case WM_CREATE:hdc=GetDC(hwnd);/获取设备环境hdcmem=CreateCompatibleDC(hdc);/获取内存设备环境ReleaseDC(hwnd,hdc);/释放设备环境 break; case WM_PAINT:hdc=BeginPaint(hwnd,&ps);SelectObject(hdcmem,hBm);/将位图选入内存设备环境 /调用BitBlt将内存设备环境中的位图拷贝到设备环境中 BitBlt(hdc,180,80,bm.bmWidth,bm.bmHeight,hdcmem,0,0,SRCCOPY);EndPaint(hwnd,&ps);/释放设备环境句柄break; case WM_DESTROY:DeleteObject(hBm);/释放位图PostQuitMessage(0);break; default:return DefWindowProc(hwnd,message,wParam,lParam); return 0;第一章1、什么是Windows SDK 程序?使用SDK 开发出来的Windows 应用程序,叫做Windows SDK 程序2、什么是Windows API 函数?为了设计Windows 应用程序,Windows 提供了大量预定义的用C 语言编写的函数5、什么是事件?试举例说明。能触发程序作出相应反映的刺激叫做事件,例如在键盘上按下一个键6、如何显示和更新窗口?调用函数ShowWindow 显示窗口,调用函数UpdateWindow 更新窗口7、什么是消息循环?在创建了窗口的应用程序中,应用程序将要不断地从消息队列中获取消息,并将消息指派给指定的窗口处理函数来处理,然后再回来从消息队列中获取消息,这个不断重复的工作过程叫做消息循环8、Windows 应用程序的主函数有哪3 个主要任务?注册窗口类、创建应用程序的窗口和建立消息循环(注:如果题目问有哪2 个主要任务,应该答后两个)9、说明Windows 应用程序的主函数,窗口函数与Windows 系统之间的关系。主函数和窗口函数都是Windows 系统调用的函数;主函数是应用程序启动后,系统首先调用的函数;窗口函数是主函数在消息循环中获得消息并把消息发送给系统之后,由系统调用函数。第二章1、在窗口类CFrameWnd 中需要封装哪些成员?窗口句柄,窗口类的定义,注册窗口类,创建窗口和显示更新窗口(注:对应书上P16 /窗体类的声明这一段代码)2、应用程序类CWinApp 应该具备哪些主要功能?注册、创建、显示应用程序的窗口;建立消息循环3、在MFC 程序设计中,如果要建立拥有自己的风格的主窗口,应该重写什么函数?在CWinApp 的派生类中重写InitInstance 函数4、什么是消息映射表?在MFC 中,能够根据消息取得消息处理函数的表,叫做消息映射表。(我自己概括的)第三章1、CObject is the principal base class for the MFC Library. (最“基”的一个类)2、功能:CObject 类:为其派生类提供了支持序列化、调试信息、运行期类型消息等一些通用功能。CCmdTArget 类:支持消息处理。CWnd 类:为所有子窗口类提供通用属性和方法。CFrameWnd 类:创建应用程序主窗口。CWinApp 类:把程序的主函数体作为一个对象来处理。3、文档类CDocument:它的对象存储和管理应用程序的数据。视图类CView:它的主要作用是为框架窗口提供用户区显示数据以及接受应用程序用户对程序的操作,从而实现应用程序与用户的交互。框架窗口类CFrameWnd:创建应用程序窗口。应用程序类CWinApp:作为上述各类对象的容器,并实现应用程序的初始化及执行消息循环的工作。4、在文档/视图结构的应用程序中,视图类的对象是如何来获取文档类对象中的数据的?视图类的对象是通过成员函数GetDocument 来访问文档类对象中的数据的。第四章1、为什么要使用DC ?为了屏蔽硬件输出设备的多样性(也可以答书上P56 第一句)2、MFC 中CDC 的派生类有哪几个?试说出它们的作用。CClientDC、CMetaFileDC、CPaintDC、CWindowDC,作用P57 表4-3 的说明3、如何把绘图工具载入设备描述环境?创建绘图工具的对象之后,使用CDC 类的成员函数SelectObject 把绘图工具载入DC第六章1、应用程序的界面有哪3 种方式?单文单界面、多文档界面、基于对话框的界面2、分别说明什么是SDI 界面的程序和什么是MDI 界面的程序。SDI 界面的程序:用户使用应用程序时,程序一次只能打开一个文档。MDI 界面的程序:应用程序具有一个主窗口,用户可以在这个主窗口中打开若干个显示不同文档的小窗口。4、在应用程序框架类的PreCreateWindow 函数中添加以下代码:cs.cx = 200; /程序窗口的宽、高cs.cy = 200;cs.x = 400; /程序窗口的坐标位置cs.y = 400;6、文档类的成员函数UpdateAllViews 的作用是什么?通知文档所对应的所有窗口同时进行重绘7、为什么拆分窗口的显示更新必须要同步?因为应用程序的所有拆分窗口显示的应该是同一个文档,所以当文档发生变化时,该文档所对应的窗口当然要同时更新显示以正确地反映文档的内容8、什么是无效显示区?在有效提高拆分窗口显示更新效率的方法中,程序只重绘必须重绘的区域。9、让程序只重绘必须重绘的部分。第七章1、鼠标消息分为哪两类?它们之间有什么区别?鼠标消息分为两类:客户区鼠标消息和非客户区鼠标消息。区别:消息产生的区域不同。3、用手工方法在程序中添加非客户区鼠标消息的消息映射宏和对应的消息响应代码。4、调用CWnd * SetCapture( )完成任务后及时调用ReleaseCapture()。5、一般是屏幕上位置最靠前(被激活)的窗口才能接受键盘的消息。7、键盘消息分为:一般键盘消息、系统按键消息。Alt 键、Shift 键、F1F12 功能键、Tab 键等。第八章1、Windows 应用程序中,什么样的数据称为资源?常用资源有哪些?资源:在应用程序被启动后,它们一般仍驻留在硬盘上的可执行文件中,只有当程序需要它时,才从可执行文件中读取相应的数据。常用的资源:菜单、加速键、图标、位图。2、在Visual C中,编辑资源数据可以使用哪两种方法?使用文本编辑器或VC+的资源编辑器对资源进行编辑。3、程序运行时,用户选中一个菜单项,会发出哪种消息?根据什么来判断消息源?用户选中菜单项时,会发出WM_COMMAND 消息。系统根据菜单项的标识ID 来判断消息源。4、准备好ICON 图表文件 在VC中,Project | Add to Project | Files, 选择图表文件 在资源文件中添加如下描述句:程序资源的ID ICON【选项】“资源文件路径”5、1)把位图资源载入位图对象;2)获得位图信息;3)把位图选入内存设备环境;4)显示位图。第九章1、什么是序列化?什么是永久性对象?序列化:就是指应用程序可以把对象的当前状态,以文件的形式写入永久性存储体中,在需要时还可以从永久性存储体中读取它,并可以在应用程序中重建对象的过程。(也可答:在面向对象理论中,能使对象成为永久性对象的机制)永久性对象:具有描述自身信息能力的类的对象。2设计永久性类的时候必须使用哪

温馨提示

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

评论

0/150

提交评论