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

大师的书真是太啰嗦了,我认为直接给代码和注释,是更高效率的方法(依然用的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 ; // wc
typedef 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 UNICODE
typedef WCHAR TCHAR, * PTCHAR ;
typedef LPWSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCWSTR LPCTSTR ;
#else
typedef char TCHAR, * PTCHAR ;
typedef LPSTR LPTCH, PTCH, PTSTR, LPTSTR ;
typedef LPCSTR LPCTSTR ;
#endif
处理API
WINUSERAPI 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
处理字符处理函数:







  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值