C++之 windows API

电子书:Windows API 参考大全

 

一个基本示例如下。需要深入学习通过C++ 操作windows系统。就看书吧。编程语言学差不多有思路,知道某东西能干嘛就行了。都是现学现用。

 

 

1.1.1    start.exe

创建一个简单的消息对话框。

 C++之 windows API

 

C++之 windows API
/* ************************************
*《精通Windows API》 
* 示例代码
* start.c
* 1.1.1    第一个示例程序,弹出消息对话框
**************************************/

/* 预处理 */
/* 头文件 */
#include <windows.h>
//连接时使用User32.lib
#pragma comment (lib, "User32.lib")

/* ************************************
* WinMain
* 功能    Windows应用程序示例
**************************************/
int WinMain(
            HINSTANCE hInstance,
            HINSTANCE hPrevInstance,
            LPSTR lpCmdLine,
            int nCmdShow
            )
{
    // 调用API函数 MessageBox
    MessageBox(NULL,
        TEXT("开始学习Windows编程"),
        TEXT("消息对话框"),
        MB_OK);
    return 0;
}
C++之 windows API

 

1.1.2    Windows API

所谓 API 是“Application Program Interface”的简写,中文含义为“应用程序接口”,它是一系列函数、宏、数据类型、数据结构的集合,运行于Windows系统的应用程序可以使用这些操作系统提供接口来完成应用程序需要的功能。

MessageBox函数是Windows众多API中的一个,其功能是弹出一个对话框。

1.1.3    程序入口函数

WinMain 函数是程序入口点,相当于 C 语言的 main 函数,其定义如下:

C++之 windows API
int WinMain(
            HINSTANCE hInstance,
            HINSTANCE hPrevInstance,
            LPSTR lpCmdLine,
            int nCmdShow
            )
C++之 windows API

 

WinMain 函数有 4 个参数:hInstance、hPrevInstance、lp CmdLine、nCmdShOW。

  • 第一个参数是 hInstance,数据类型是 HINSTANCE,此参数表示应用程序本次运行实例的句柄。
  • 第二个参数是 hPrevInstance,数据类型也是 HINSTANCE,表示应用程序之前运行的句柄,但是在实际应用中,此参数始终为 NULL。
  • 第三个参数 lpCmdLine 是运行时参数。如在 cmd命令行中运行“start.ext Command Arguments”,那么lpCmdLine就指向字符串“Command Arguments”,作用与C语言中main函数的参数作用类似。数据类型LPSTR是Windows API常见的字符串类型。
  • 最后一个参数是 nCmdShow,数据类型是int,表示应用程序窗口(如果有)的显示状态。WinMain 函数的返回类型是 int 型的。

1.1.4    start.c 代码分析

预编译声明,在本实例*有两条预编译声明:

#include <windows.h>

 

在Windows应用程序开发中所使用的很多的数据类型、结构、API接口函数都在Windows.h。

#pragma comment (lib, "User32.lib")

 

这行代码指明将源文件编译生成目标文件(.obj)后,将目标文件链接成可执行文件的过程中需要使用到 User32.lib,因为 User32.lib 中包含了 MessageBox 的链接信息。如果在链接程序时,调用链接器的参数中指明了链接时需要使用到 user32.lib,这—句程序代码可以省略(参见第3章)。

代码接下来是 WinMain 函数的定义。在 WinMain 函数中调用了 MessageBox 函数。

     // 调用API函数 MessageBox
    MessageBox(NULL,
        TEXT("开始学习Windows编程"),
        TEXT("消息对话框"),
        MB_OK);

 

MessageBox 函数的原型如下:

 int MessageBox(          HWND hWnd,
    LPCTSTR lpText,
    LPCTSTR lpCaption,
    UINT uType
);

 

第一个参数 hWnd 是消息框所属的窗口的句柄,可以设置为 NULL。

第二个参数 lpText 是字符串,表示消息框所显示的消息。

第三个参数 lpCaption 是字符串,表示消息框的标题。

第四个参数 uType 是消息框的类型,在实例 1-1 中设置为“MB_OK”,意思是消息框包含一个“确定按钮”MessageBox 函数调用之后,程序返回 O,结束 WinMain 函数,退出进程。

 C++之 windows API

Minimum DLL Version

user32.dll

Header

Declared in Winuser.h, include Windows.h

Import library

User32.lib

Minimum operating systems

Windows 95, Windows NT 3.1

Unicode

Implemented as ANSI and Unicode versions.

您可以自己参考表头文件或 / Platform SDK / User Interface Services / Windowing / Dialog Boxes / Dialog Box Reference / Dialog Box Functions里的文件。

 

上一篇:python GUI编程


下一篇:Delphi - Application.MessageBox