资源描述:
《第一讲:windows程序设计》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、WINDOWS程序设计l为什么要学习Windows程序设计1.软件产业的发展,需要人们在Windows下编程。2.过程驱动的程序设计、面向对象的程序设计、事件驱动的程序设计的区别。3.理解Windows原理。l学习Windows程序设计的入口点开发工具VC,VB,Delphi等Windows操作系统APIWindows操作系统本课程是学习在Windows下编程的入门级课程,它通过讲授在Windows下编程的最基本的概念使我们对在Windows下编程的基本原理有一个透彻的理解,在此基础上,为我们进一步学习高级的软件开发工具VC、VB等打下坚实的基础,如果在没有对在Wind
2、ows下编程的基本概念有一个比较全面的了解之前,就贸然地去学习VC、VB等开发工具,你会发现有很多概念你根本就不明白是怎么回事,你会遇到很大的障碍,其结果是事倍功半。著名专家CharlesPetzold主张学习在Windows下的编程的最佳入口点是从学习WindowsAPI开始,他指出“Windows是一个复杂的系统,在API上增加一个编程层并未减少它的复杂性,仅仅是掩盖了它,早晚您会碰到它,了解API会给您更好的补救机会”。l参考书:WindowsProgramming(Ver.5)CharlesPetzoldMicrosoftPressWindows程序设计北京大学
3、出版社,1999年11月第一讲:基本概念lProgramWindowsElements每一个Windows程序窗口一般都有一个标题条、菜单条、系统菜单框、窗口最小化框、窗口恢复框、窗口删除框、窗口客户区、窗口边框。lWindows程序框架结构HELLOWIN.C/*------------------------------------------------------------HELLOWIN.C--Displays"Hello,Windows98!"inclientarea(c)CharlesPetzold,1998-----------------------
4、-------------------------------------*/#includeLRESULTCALLBACKWndProc(HWND,UINT,WPARAM,LPARAM);intWINAPIWinMain(HINSTANCEhInstance,HINSTANCEhPrevInstance,PSTRszCmdLine,intiCmdShow){staticTCHARszAppName[]=TEXT("HelloWin");HWNDhwnd;MSGmsg;WNDCLASSwndclass;wndclass.style=CS_HREDR
5、AW
6、CS_VREDRAW;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=N
7、ULL;wndclass.lpszClassName=szAppName;if(!RegisterClass(&wndclass)){MessageBox(NULL,TEXT("ThisprogramrequiresWindowsNT!"),szAppName,MB_ICONERROR);return0;}hwnd=CreateWindow(szAppName,//windowclassnameTEXT("TheHelloProgram"),//windowcaptionWS_OVERLAPPEDWINDOW,//windowstyleCW_USEDEFAULT,//i
8、nitialxpositionCW_USEDEFAULT,//initialypositionCW_USEDEFAULT,//initialxsizeCW_USEDEFAULT,//initialysizeNULL,//parentwindowhandleNULL,//windowmenuhandlehInstance,//programinstancehandleNULL);//creationparametersShowWindow(hwnd,iCmdShow);UpdateWindow(hwnd);while(GetMessage(