文章目录
- window编程基本概念
- Windows常见的数据类型
- 字符串的处理
- 第一个windows程序的编写
window编程基本概念
Windows编程的本质就是使用好操作系统,想要用好操作系统必不可少的秘籍----MSDN。
Windows编程主要分为两种:
1、控制台编程(CUI)
2、图形界面编程(GUI)
Windows编程的基本要素
#include < windows.h>
在进行windows编程的时候需要包含一个新的万能头文件。
Windows.h 它是一个综合性头文件,它里面包含了许多其它都文件。
Windows常见的数据类型
UINT 无符号32位整型
DWORD 32位整数
PDWORD 32位整数类型指针。
BOOL 布尔类型
SHORT 带符号16位整数。
LRSULT 32位函数返回值
WPARAM 32位的消息参数。
LPARAM 32位的消息参数。
HANDLE
是windows编程中一个特别重要的概念,在计算机中翻译为句柄。用于标示操作系统中的某个对象。
HANDLE 通用句柄
HWND 窗口句柄
HINSTANCE 实例句柄
字符串的处理
windows包含这三种字符串类型,他们分别是:
CHAR
字符型,相当于char
WCHAR
宽字符型,相当于wchar_t
TCHAR
是一种条件编译的类型,根据条件可以代表wchar_t或char。
还有这些类型的指针类型:
PWCHAR WCHAR的指针类型
PTCHAR TCHAR的指针类型
PCWCHAR const WCHAR的指针类型
我们没有必要完全记住这些参数,我们只需要知道他们的普通用法就可以了。
三种字符型的比较:
- 字符串长度的比较
TCHAR类型会根据你设置的字符串为标准,来适应成不同的类型。
unicode字符集为标准: TCHAR的字长 = WCHAR的字长
多字节字符集为标准: TCAHR的字长 = CHAR的字长
- 字符串的打印
CHAR类型直接用%s 打印
WCHAR类型用 %ls 或者%ws打印
TCHAR类型用%s或者%ws打印,这取决于你的字符集设置。
字符串的长度
他们仅仅只有长度函数调用的不同:
第一个windows程序的编写
在windows中,我们有一个类似于C/C++的入口函数,如main函数。
在windows中,这个入口是这样的:
你可以会觉得,这是什么鬼,怎么这么多参数,我们以前写的C++的mina最多也就两个参数啊,但是,你必须接受这个现实,windows编程有非常多的复杂概念,和非常复杂的声明等等。
例如:这前两个参数:HINSTANCE 这他喵的什么鬼??? 我们以前见过double,int,long,我们都可以很清晰的知道他们是什么意思,但是这玩意可读性这么差,而且还都是大写,怎么记得住啊。
但是!!
我们千万不要记住这些东西,浪费这些时间记住没用的参数是没有用的,我们完全不需要记,我们只需要记住特定的函数名字就可以,然后我们(在VS环境下)按F1 就可以找到他的官方文档,然后直接把文档的函数原型复制即可:
步骤:
- 写一个WinMain函数名字:
- 选中WinMain,按 F1 :
- 我们就可以直接把这段函数及原型抄上。。。
然后你在那个文档里,还可以找到很多关于此函数的信息:
例如他的每个参数的含义:
- 参数一: HINSTANCE hInstance:当前应用程序实例的句柄
- 参数二: HINSTANCE hPreInstance: 上一个程序实例的句柄(基本弃用此参数了)
- 参数三: LPSTR lpCmdLine: 应用程序的命令行参数。
- 参数四: int nShowCmd: 控制窗口的显示方式
我们千万不要死记硬背,要灵活使用F1查看帮助文档。
那么我们已经写好了入口函数,应该如何编写一个最简单的windows应用程序呢?
首先我们先把此项目的属性改为 窗口
类型。
因为我们编写的已经不是黑窗口的控制台程序了,而是图形界面编程。。
我们使用MessageBoxW在产生一个最简单的弹窗:
注意:
MessageBoxW:
- 参数一:创建此窗口的所有者的句柄,可以为NULL,表示没有所有者。
- 参数二:你要输入的内容
- 参数三:窗口标题
- 参数四:对话框的内容和行为: MB_OK表示你可以点击确定,这还有很多内容,可以直接查看它的官方文档:
MessageBox官方文档
MessageBox又可以分为 MessageBox ,MessageBoxA , MessageBoxW等多种不同类型,我们统一使用MeseageBoxW 类型,因为以宽字符调用,我们输入字符串时也能够适应宽字符,兼容性比较好。。
程序运行结果:
我们已经完成了第一个窗口的实例,接下来我们将学习如何编写一个正规的第一个窗口。