资源描述:
《实验一、helloworld在vc上的实现》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验一、HelioWorld在VC上的实现班级:姓名:学号:1.1实验目的•掌握Windows程序基木的运行原理。•学会编写简单的Windows程序。1.2实验平台•WindowsXPprofessional操作系统。•VC6.0集成开发环境。1.3实验内容•用WindowsAPI(SDK)实现图形化HellowWorld程序。•用MFC类库实现图形化HellowWorld程序。1.5实验步骤•用WindowsAPI(SDK)实现HellowWorld程序>打开VC6.0,从File菜单中选择New,单击Project标签,选择Win32Application,
2、输入项目名称和工程存放目录,点击确定后出现3中选择,在此选择创建一个空的工程,点击工程的FileView,向SourceFiles>
3、'添加源文件,然后编写代码。>Windows程序的入口函数:我们编写过Win32控制台程序,这种程序的唯一入口为main()函数,那么对于Windows应用程序,它的入口函数为WinMain(),由操作系统调用。它的函数原型如下://handletocurrentinstance//handletopreviousinstance//commandline//showstateintWINAPIWinMain(HINSTANCEh
4、lnstance,HINSTANCEhPrevInstance,LPSTRIpCmdLine,intnCmdShow);>窗口的创建创建一个完整的窗口需要经过下面四个操作步骤:•设计■—个窗口类:Windows已经为程序员定义了一个窗口应该具有的基本属性,即WNDCLASS类(结构体),定义如下:typedcfstruct_WNDCLASS{U1NTstyle;//窗口风格WNDPROClpfnWndProc;〃窗口过程intcbClsExtra;〃扩展空间intcbWndExtra;〃扩展空间HTNSTANCEhTnstanee;〃实例句柄IIICONhlco
5、n;〃图标设置HCURSORhCursor;〃光标设置HBRUSHhbrBackground;//窗口背景颜色LPCTSTRIpszMenuName;〃窗口类菜单LPCTSTRIpszClassName;//窗口类文本名称}WNDCLASS,*PWNDCLASS;用WNDCLASS定义一个窗口变量,然后依次初始化起它的每一个成员,注意:第二个成员变量lpfnWndProc指定了这一类型窗口的过程函数(函数名可以作为该函数的首地址),也称冋调函数。每一种不同类型的窗口都有自己专用的回调函数。•注册囱口类:调用RegisterClass()函数注册囱口,函数原型如下
6、:ATOMRegisterClass(CONSTWNDCLASS^lpWndClass);•创建窗口:调用CreateWindow()函数创建窗口,函数原型如下:HWNDCreateWindow(LPCTSTRIpCbssNaig//LPCTSTRIpWindowN&ine,//DWORDdwStyle,//intx,//int//intnWidth,//int“Height,//HWXDhWndParent,//HMENUhMenu,//HTNSTANCEhlnst^nce、//LPVOIDlpParam//);•显示及更新窗口:registeredclass
7、namcwindownamewindowstylehorizontalpositionofwindowverticalpositionofwindowwindowwidthwindowheighthandletoparentorownerwindowmenuhandieorchildidentifierhandletoapplicationinstancewindow-crcationdata在CreateWindow()调用返回后‘Windows己经分配了一块内存,用于保存创建窗口的全部信息,然而窗口并未在显示器上显示,所以需要调用ShowWindow()函数
8、显示窗口和UpdatcWindowO更新窗口,两个函数原型分别为:BOOLShowWindow(HWNDMVnd,//handletowindowintnCmdShow//showstate);更新窗口函数原型:BOOLUpdateWindow(HWXDhWnd//handletowindow);>消息循环当窗口显示在显示器上后,程序必须准备读入用户用键盘和鼠标输入的数据。Windows为每一个应用程序维护一个“消息队列”,当发生输入事件后,Windows将事件转化成一个消息,并将消息放入程序的消息队列中。程序通过执行以下一段代码从消息队列屮取出消息:while
9、(GetMessage(