windows程序设计——开始、Unicode 简介

来源:互联网 发布:it资讯 编辑:程序博客网 时间:2024/05/20 09:27

大师的书真是太啰嗦了,我认为直接给代码和注释,是更高效率的方法(依然用的vc6)。

#include <windows.h>int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,                    PSTR szCmdLine, int iCmdShow){     MessageBox (NULL, TEXT ("Hello, Windows 98!"), TEXT ("HelloMsg"), 0) ;     return 0 ;}
windows.h头文件主要包含了windows编程中所需要的其他文件,一般包含了这个头文件之后就能使用系统的大部分API了。

WinMain主函数,编译器规定的入口函数,这么没什么好说的,这个是规定的,而return 0代表程序正常结束。

MessageBox( //弹出对话框    HWND hWnd , //窗口句柄    LPCWSTR lpText, // 消息内容    LPCWSTR lpCaption, //对话框标题    UINT uType); //
uType指示图标和按钮风格使用 | 组合:

按钮风格#define MB_OK 0x00000000L#define MB_OKCANCEL 0x00000001L#define MB_ABORTRETRYIGNORE 0x00000002L#define MB_YESNOCANCEL 0x00000003L#define MB_YESNO 0x00000004L#define MB_RETRYCANCEL 0x00000005L
图标风格#define MB_ICONHAND 0x00000010L#define MB_ICONQUESTION 0x00000020L#define MB_ICONEXCLAMATION 0x00000030L#define MB_ICONASTERISK 0x00000040L
返回值IDOK、IDYES、IDNO、IDCANCEL、IDABORT、 IDRETRY 或IDIGNORE代表按下了哪个按钮关闭对话框。

以上的MessageBox函数其实是个宏,在Unicode工程环境下为MessageBoxW,非Unicode的情况下为MessageBoxA。这是处理不同的参数类型而定义的两个函数,但是功能和使用方法完全一致,为了减轻记忆负担而使用宏定义的方式统一到MessageBox中。为了能处理普通字符一样来处理Unicode字符,微软定义了许多宏。以语法糖的方式使得工程环境迁移到Unicode环境中的时候无需修改代码。

处理类型typedef char CHAR ;typedef wchar_t WCHAR ; // wctypedef CHAR * PCHAR, * LPCH, * PCH, * NPSTR, * LPSTR, * PSTR ;typedef CONST CHAR * LPCCH, * PCCH, * LPCSTR, * PCSTR ;typedef WCHAR * PWCHAR, * LPWCH, * PWCH, * NWPSTR, * LPWSTR, * PWSTR ;typedef CONST WCHAR * LPCWCH, * PCWCH, * LPCWSTR, * PCWSTR ;#ifdef UNICODEtypedef WCHAR TCHAR, * PTCHAR ;typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ;typedef LPCWSTR LPCTSTR ;#elsetypedef char TCHAR, * PTCHAR ;typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ;typedef LPCSTR LPCTSTR ;#endif
处理APIWINUSERAPI int WINAPI MessageBoxA ( HWND hWnd, LPCSTR lpText, LPCSTR lpCaption, UINT uType);WINUSERAPI int WINAPI MessageBoxW (HWND hWnd, LPCWSTR lpText, LPCWSTR lpCaption, UINT uType);#ifdef UNICODE#define MessageBox MessageBoxW#else#define MessageBox MessageBoxA#endif
处理字符处理函数:







原创粉丝点击