zoukankan      html  css  js  c++  java
  • 第一个Windows程序讲解

        上次,我们一起写了第一个Windows程序,虽然程序非常简单,但是它却可以帮助大家建立学好windows开发的信心。

        今天,就让我帮助大家分析一下这个程序的内容。首先,我们的程序包含了一个头文件:windows.h,这个头文件包含了Windows下开发需要的所有结构体,宏和API的声明。之后,我们又链接了一个静态库文件:User32.lib,这个文件是动态库user32.dll的链接文件,通过使用User32.lib,可以让我们的程序使用user32.dll的功能,这是动态库调用的一种常用方法,这个方法的好处是不用我们操心动态库的加载和释放。user32.dll中主要包含的是Windows用户界面相关应用程序接口的实现,比如,我们程序中使用到的MessageBox。

       最后,进入了我们这个程序的核心,这个核心就是winmain函数,这个函数是所有windows程序的入口点,它就好比main函数,不同的是,winmain主要用于windows程序,而main函数主要用于控制台程序。

       winmain函数的生命如下:

       int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow);

       大家只需要记住,只要是Windows程序,就一定要写Winmain,只要是Winmain函数,就一定要按照它的声明方式来写。

       之后,我们的WinMain函数调用了MessageBox函数,这个函数的功能就是弹出一个对话框,它的原型如下:

        int WINAPI MessageBox(HWND hWnd,LPCTSTR lpText,LPCTSTR lpCaption,UINT uType);

        相信,很多初学者一看到这个函数的参数就会发晕,下面,我跟大家简要介绍一下这些参数,以及它们的意义:

        WINAPI:这个是函数的调用方式,大家现在先不需要理解它,只需要知道它就是一个调用方式的声明就可以了。

        HWND:它就是一个窗口的标识符号,它的本质就是一个整数,在Windows中每个窗口都有一个标识符。

        LPCTSTR :这个就是一个字符串指针,只要记住就可以。

        UINT:它是一个无符号的32位整数,就好比unsigned int。

        之后,我们再说明一下这个原型的参数意义:

        hWnd:这个是我们这个对话框窗口的父窗口标识符,我们这里只有一个对话框,所以,它没有父窗口,因此,设置为NULL就可以了。

       lpText:这个是我们窗口中的内容,我们窗口的内容是:开始学习Windows编程。

       lpCaption:这个是我们窗口的标题,我们窗口的标题是:消息对话框。

       uType:它可以决定对话框的内容和行为的位标志集,我们这里是MB_OK,意思是在我们的界面中提供一个确定按钮。其它的标志,大家可以参考下面的表格:

    表1   uType参数

      

         大家可以回去自己去实践一下每个参数的意义,这里就不过多介绍。

        好了,今天,我们一起分析例了第一个windows程序的源代码,希望大家自己回去后,再分析一遍,看看自己是否可以看明白程序的意思。

       

         

       

  • 相关阅读:
    连接池
    Socket编程实践(2) --Socket编程导引
    自己定义JSTL函数
    用new和delete运算符进行动态分配和撤销存储空间
    Unix网络编程学习笔记之第12章 IPv4与IPv6的互操作性
    矩阵十题【五】 VOJ1049 HDU 2371 Decode the Strings
    Unity3d / 3ds max 模型分享站点
    浙大PAT考试1077~1080(2014上机复试题目)
    Java反射学习总结五(Annotation(注解)-基础篇)
    关于http和https淘宝支付宝跨域解决方法研究
  • 原文地址:https://www.cnblogs.com/new0801/p/6176941.html
Copyright © 2011-2022 走看看