[学习笔记]Windows程序设计:第一章 起步
来源:互联网 发布:网络上课平台 编辑:程序博客网 时间:2024/05/06 10:55
详解你的第一个Windows程序——Hello, Windows!
一、体验Windows下的Hello,world
和字符模式版本的程序一样,Windows对应的“Hello, world”程序包括了同样的组成部分,即include语句、程序入口WinMain、函数调用,以及return语句。
#include <windows.h>int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PSTR szCmdLine, int iCmdShow){ MessageBox(NULL, TEXT("Hello, Windows!"), TEXT("HelloMsg"), 0); Return 0;}
windows.h是一个重要的包含文件,它囊括了若干其他Windows头文件
二、详解WinMain函数
程序入口函数WinMain的返回值被定义为int。WINDEF.H中对WINAPI标识符的定义:
#define WINAPI __stdcall
这条语句规定了一种函数的调用约定,表明如何生成在堆栈中放置函数调用参数的机器代码。
WinMain的第一个参数(hInstance)叫做“实例句柄”。句柄就是一个数值,程序的唯一标识。
WinMain的第二个参数(hPrevInstance)当创建多个实例时,同一程序的所有的实例都共享代码以及只读存储(即菜单或对话框模板之类的资源)。程序可以通过查看hPrevInstance参数从面知道是否有它的其他实例正在运行。它也就可以因此跳过某些步骤,把一些数据从前一个实例搬到自己的数据区来。在32位Windows中,这一概念已不再采用。因此WinMain的第二个参数通常总的NULL(定义为0)。
WinMain的第三个参数(szCmdLine)是用来运行程序命令行(Comman Line)。有些Windows程序在启动时用它来把文件装入内存。
WinMain的第四个参数(iCmdShow)用来指示程序最初如何显示(可选择的值参见MSDN)
三、详解MessageBox
MessageBox的定义为:
int MessageBox( HWND hWnd, // handle to owner window LPCTSTR lpText, // text in message box LPCTSTR lpCaption, // message box title UINT uType // message box style );
MessageBox的第一个参数(HWND)是弹出的消息框的父窗口的句柄,直接表现为,消息框没关闭之前,那个窗口是无法操作的,如设置NULL则直接作为桌面窗口的子窗口。
MessageBox的第二个参数为消息框的内容。第三个参数为消息框的标题。
MessageBox的第四个参数为产生的消息框是哪种风格,如按钮,图标等,具体参见MSDN,组合使用请用c语言中的|(或)去除使用|~(或 非)。
第二、三个参数中将文本都装进TEXT的宏代码中,一般来说,并不需要把所有的字符串都打包到TEXT宏代码里面,可以直接使用字符串,例如"Hello, Windows!"。之所以这样做是因为这样在把程序转换成UNICODE时会方便很多。因为当UNICODE被定义时字符串将用宽字符存储——也就是说,每个字符占用2个字节,而宽字符的字符串使用时应使用L(大写字母)紧接左引号,例如L"Hello, Windows!"。当UNICODE没被定义时可以直接使用字符串,例如"Hello, Windows!"。而使用TEXT宏就会方便多了,不用考虑UNICODE是否被定义。
如果UNICODE标识符被定义了,那么__TEXT的宏则定义如下:
#define __TEXT(quote) L##quote //##被称为“令牌粘贴”它使得字母L和宏参数拼接在一起如果UNICODE标识符被定义了,那么__TEXT的宏则定义如下:
#define __TEXT(quote) quote而不管怎样,TEXT宏可如下定义:
#define TEXT(quote) __TEXT(quote)
即:
#ifdef UNICODE#define __TEXT(quote) L##quote#else #define __TEXT(quote) quote#endif#define TEXT(quote) __TEXT(quote)
UNICODE的定义方法为:project->setting->c/c++
如果有_MBCS,删除掉。_MBCS表示ANSI或者GB2312编码。添加上_UNICODE,UNICODE。
英文缩写:
1、API(Application Programming Interface):应用程序编程接口
2、GUI(Graphical User Interface):图形用户界面
3、WYSIWYC(What you see is what you get):所见即所得
4、GDI(Graphics Device Interface):图形设备接口
5、DLL(Dynamic Linking Library):动态连接库
- [学习笔记]Windows程序设计:第一章 起步
- 《Windows程序设计》第一章 起步
- windows程序设计:第一章:起步
- windows程序设计第一章学习笔记
- Windows程序设计_Chap01_起步_学习笔记
- windows程序设计学习笔记(第一章)
- MFC Windows程序设计学习笔记(第一章)
- Windows Programming 第一章 起步
- Linux程序设计-学习笔记-第一章
- Windows程序设计--起步
- Windows程序设计--起步
- MFC Windows程序设计(第二版)第一章笔记
- Windows程序设计学习笔记
- C++程序设计(第二版)第一章学习笔记
- 《JavaScript高级程序设计》学习笔记(第一章)
- 《intel 汇编语言程序设计》第一章正式起步
- 《Windows程序设计》读书笔记一 起步
- Windows 程序设计(1):起步
- Android Alarm manager定时闹钟开发详解
- 排序---->选择排序
- IOS在一个程序中启动另一个程序
- 我用什么才能留住你
- 《敏捷软件开发 原则、模式与时间》读后感 - 敏捷设计原则
- [学习笔记]Windows程序设计:第一章 起步
- 删除多系统启动项,删除多余系统 软件
- 字符串
- 对自己的全面检视,写在28周岁的人生规划
- Nagios远程监控软件的安装与配置详解(1)
- 二维码彩色广告招牌的切割制作问题(C#.net下对彩色二维码圆角样式及改进)
- 多类物体实时识别算法
- BSTR* 到 Char* 解决乱码
- win7.win8下wubi安装ubuntu 12.10详解