Windows程序设计--起步

来源:互联网 发布:淘宝盗图有什么处罚 编辑:程序博客网 时间:2024/05/17 04:20

**———-这是我学习Windows程序设计第五版的学习笔记
写这文章是为了总结以及日后查阅方便,也希望能给和我一样入门的小白一些启示,如有错误,望不吝赐教。(文章中我的角色就是一个传授者,我觉得这样才能更好的对一些问题的理解。)**

这本书的第一章:开始,只是教了一个Windows程序的雏形。也就是Hello World,学过C语言的都应该知道吧?在C语言中刚写的程序就是一个Hello World程序,然后在一个黑框框中运行就觉得很有成就感了。Windows编程也一样,刚开始也给你一个Hello World程序,但是不同的是,我们不再用黑框框而是有界面的程序。

这是书上的代码:

#include <windows.h>int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,PSTR szCmdLine, int iCmdShow){MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0);//TEXT是一宏return 0 ;}

这就是一个Hello World程序了,运行起来就会弹出一个对话框。这也算是一个小窗口了。

接下来就是大致说一下入口函数以及参数的意思。

头文件:Windows程序基本的函数都在Windows.h这个头文件里面了,而这个头文件又包含了众多的头文件,其中比较重要的有如下几个:
WINDEF.H 基本型态定义。
 
WINNT.H 支持Unicode的型态定义。
 
WINBASE.H 内核(Kernel)函数。
 
WINUSER.H 用户界面函数。
 
WINGDI.H 图形设备接口函数。
各种定义都在这里面,发现看不懂的类型或宏可以去查看。
注:如果觉得包含Windows.h这个大的头文件使得程序运行变慢,那么如果你有能力,对各个头文件足够了解,就能需要什么头文件就包含什么头文件。

入口函数:在C语言中,入口函数就是main函数,而在Windows中是WinMain函数(可以自己更改)。其实也就是名字不一样而已,其原理是一样的。WinMain前面那个WINAPI是一种调用约定,其定义如下:
#define WINAPI __stdcall
C语言中main函数前也有__stdcall,只是编译器把它隐藏了而已。

HINSTANCE: 这是一个实例句柄,hInstance是唯一标识一个程序的实例句柄,当程序运行的时候Windows会自动分配给程序一个实例句柄。句柄相当于一个索引,用这个索引可以找到相应的内部信息。

第二个参数也是一个实例句柄,但是在32位机器中已经作废,一般设置为0.

第三个参数是LPSTR,LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针

注: LPSTR和LPWSTR是Win32和VC++所使用的一种字符串数据类型。LPSTR被定义成是一个指向以NULL(‘\0’)结尾的32位ANSI字符数组指针,而LPWSTR是一个指向以NULL结尾的64位双字节字符数组指针。CString与LPSTR转换。

  ‘L’代表Long,’P’代表了pointer(即为指针的意思),’STR’意为String的意思。

第四个参数就是一个显示窗口的状态了。ShowWindow(hwnd,iCmdShow);

接下来就是要显示Hello World的函数了。

int MessageBox(  HWND hWnd,            //窗口句柄  LPCTSTR lpText,        //要显示的文本  LPCTSTR lpCaption,  //标题  UINT uType              //按钮的类型 例如,MB_OK); 

只要对着提示填上去就可以了,很简单。这个函数在以后会经常遇到,写着写着就熟悉了。

注:MessageBox也分两种,ASCLL 和 Unicode两种类型
分别为MessageBoxA,MessageBoxW,如果只写MessageBox,编译器会自动识别是哪种类型。具体看MSDN。

好了 ,这就是第一章想要表达的东西。

2 0
原创粉丝点击