WIN32程序API整理

//作为学习win32程序的笔记(持续更新中)

Win32 的 Windows 界面开发通常使用 C 语言来编写。Win32 API(Application Programming Interface)提供了一套用于操作 Windows 系统的函数,结构体和常量,开发者可以使用这些 API 来创建 Windows 应用程序的用户界面。

在 Win32 编程中,可以使用纯 C 语言编写代码来调用 Win32 API 函数,创建窗口、处理消息、设置控件等。通过注册窗口类、创建窗口、处理消息循环等操作,开发者可以自定义实现 Windows 应用程序的界面和功能。

虽然在 Win32 编程中使用 C 语言最为常见,但也可以结合 C++ 等其他语言来进行开发。此外,Microsoft Foundation Classes(MFC)是一个基于 C++ 的库,提供了对 Win32 API 的封装,使得 Windows 界面开发变得更加方便。

学习MFC之前,有必要了解win32的相关内容。本文整理了相关API,以作为学习参考。

(使用vs2022)

前言:

vs创建win32程序步骤如下:

1新建空项目,创建一个cpp文件,打开项目属性页面。

   设置为窗口

  选择性设置字符为多文本(本人没改)

2 新建资源。解决方案列表-项目名称右键

  更改项目图标 找个icon图标放在项目目录中 ,下图Import即可

   

增加对话框

选择dialog,new

另:对控件包括对话框本身修改ID后,需要打开文件,对重复的控件ID定义删除(vs的bug)(也就是修改的ID和以前的ID同时存在,把旧的删除)

API记录:

1   winmain 

入口,win32的入口函数不再是main函数(有界面的)而是winmain(在help viewer的词条是WinMain entry point

int WINAPI WinMain(
  HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  LPSTR     lpCmdLine,
  int       nCmdShow
) {
    // 在这里编写应用程序初始化的代码
    
    // 创建窗口、消息循环等
    
    // 最后返回程序的退出码
    return 0;
}

参数说明

  • hInstance:当前应用程序实例句柄。
  • hPrevInstance:先前实例句柄,在现代 Windows 中始终为 NULL,因为 Windows 不再支持多实例应用程序。
  • lpCmdLine:指向包含命令行参数的 ANSI 字符串的指针,通常用于从命令行中传递参数。
  • nCmdShow:指示应用程序窗口应该如何显示的标志。

返回值

  • 返回值类型为 int,通常表示应用程序的退出码。

说明

  • WinMain 是 Windows 主窗口应用程序的 ANSI 版本的入口点函数。
  • 在 Windows 中,Unicode 版本的入口点函数通常为 wWinMain
  • 在 WinMain 函数中,可以进行应用程序初始化、创建窗口,实现消息循环以及处理窗口消息等。

另:

int CALLBACK WinMain(
  _In_  HINSTANCE hInstance,
  _In_  HINSTANCE hPrevInstance,
  _In_  LPSTR lpCmdLine,
  _In_  int nCmdShow
);

这个 WinMain 函数的定义与之前提到的 WinMain 函数定义基本相同,唯一的区别在于参数的修饰符以及函数声明中的 CALLBACK 宏。

在这个函数声明中:

  • _In_:表示这是一个输入参数。
  • CALLBACK:是一个宏,一般定义为 __stdcall 调用约定,用于标记函数作为回调函数。

这两个定义的 WinMain 函数实际上在参数和调用约定上没有本质区别,它们都是 Windows 主窗口应用程序的入口点函数,用来初始化应用程序、处理消息循环等操作。根据个人偏好或项目要求,可以选择其中的一种来作为程序的入口点函数。

【PS :程序中的_In_ 只是注释,说明是输入参数,类似还有 _In_opt_ 指示参数是输入参数,并且可以为可选参数;_Out_ 表示该参数是一个输出参数】

以下是wwinmain的定义:

int WINAPI wWinMain(
  HINSTANCE hInstance,
  HINSTANCE hPrevInstance,
  PWSTR     pCmdLine,
  int       nCmdShow
);

参数

  • hInstance:当前应用程序实例的句柄。
  • hPrevInstance:先前实例的句柄,在现代 Windows 中始终为 NULL。
  • pCmdLine:指向包含命令行参数的 Unicode 字符串的指针。这是一个包含命令行参数的字符串,通常用于从命令行中传递参数。
  • nCmdShow:指示应用程序应如何被显示的标志,如最小化、最大化等。

返回值

  • 返回值类型为 int,通常表示应用程序的退出码。

说明

  • wWinMain 是 Windows GUI 应用程序的入口点函数,主要用于创建窗口、消息循环和处理窗口消息。
  • 在 Windows 中,Unicode 版本的主窗口入口点函数命名为 wWinMain,对应的 ANSI 版本为 WinMain。
  • 一般情况下,开发 Windows GUI 应用程序时会使用 wWinMain 函数作为程序的主入口点。

2 MessageBox 弹出消息:图标和文字 

最后一个参数详见help viewer中的说明

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

参数说明:

  • hWnd:父窗口的句柄,消息框将在其上显示,通常为 NULL
  • lpText:消息框显示的文本内容。
  • lpCaption:消息框的标题。
  • uType:指定消息框的样式,包括按钮类型、图标类型、默认按钮和其他选项。

返回值:

  • 返回值为用户的响应,可以是以下值之一:
    • IDOK: 用户单击了“确定”按钮。
    • IDCANCEL:用户单击了“取消”按钮。
    • 其他值取决于消息框的样式和用户的选择。

举例用法:

int n = MessageBox(handle,L"Hello word",L"提示", MB_OKCANCEL | MB_ICONINFORMATION);
if (n == IDOK) 
{
	MessageBox(handle,L"你点击了OK",L"返回值",MB_OK);
}

3FindWindow 查找主窗口:根据标题或者窗口类型

HWND WINAPI FindWindow(
  _In_opt_  LPCTSTR lpClassName,
  _In_opt_  LPCTSTR lpWindowName
);

第一个参数,可以使用spy++获取(vs的工具-Spy++)

使用 查找窗口  拖动到窗口上,第一个参数使用句柄或者类都行(然后测试句柄失败了)

第二个参数标题,需要给出全称,比如:

HWND handle = FindWindow(NULL,L"API汇总1 - Notepad");//打开的某个窗口

4 SetWindowText 设置标题文字

BOOL WINAPI SetWindowText(
  _In_      HWND hWnd,
  _In_opt_  LPCTSTR lpString
);

5 GetWindoeText 获取窗口标题文字

int WINAPI GetWindowText(
  _In_   HWND hWnd,
  _Out_  LPTSTR lpString,
  _In_   int nMaxCount
);

示例:

HWND handle = FindWindow(NULL,L"API汇总1 - Notepad");//打开的某个窗口
WCHAR s[100];
n = GetWindowText(handle, s, sizeof(s));

6 MoveWindow 改变窗口位置和大小

BOOL WINAPI MoveWindow(
  _In_  HWND hWnd,
  _In_  int X,
  _In_  int Y,
  _In_  int nWidth,
  _In_  int nHeight,
  _In_  BOOL bRepaint
);

例如,在对话框初始化时居中显示:

switch (uMsg)
{
case WM_INITDIALOG:
{

    int screenW = GetSystemMetrics(SM_CXSCREEN);//屏幕宽
    int screenH = GetSystemMetrics(SM_CYSCREEN);//长

    LPRECT lpRect = new RECT;
    GetWindowRect(hwndDlg, lpRect);
    int w = lpRect->right;
    int h = lpRect->bottom;

    MoveWindow(hwndDlg, (screenW - w) / 2, (screenH - h) / 2, w, h, FALSE);



    break;
}
}

7 EnableWindow 窗口禁用和激活

BOOL WINAPI EnableWindow(
  _In_  HWND hWnd,
  _In_  BOOL bEnable
);

8 ShowWindow 隐藏和显示窗口

不止用于隐藏和显示,还有最大化,最小化和恢复等功能。

BOOL WINAPI ShowWindow(
  _In_  HWND hWnd,
  _In_  int nCmdShow
);

示例:

switch (uMsg)
{
    case WM_COMMAND:
    {
			
    switch (LOWORD(wParam))
    {
        case IDC_BTN_ENABLE:  //自定义的一个按钮
		{
			HWND h = (HWND)lParam;
			if (h)
				EnableWindow(h, FALSE);
			break;
		}
		case IDC_BTN_SHOW:  //自定义的一个按钮
		{
			HWND h = GetDlgItem(hwndDlg, IDOK); //默认的ok按钮
			if (h)
				ShowWindow(h, SW_HIDE);
			break;
		}
	}
    break;
    }
}

9 GetWindowRect 获取窗口位置和大小

BOOL WINAPI GetWindowRect(
  _In_   HWND hWnd,
  _Out_  LPRECT lpRect
);

例如:

LPRECT lpRect = new RECT;
GetWindowRect(hwndDlg, lpRect);
int w = lpRect->right;
int h = lpRect->bottom;

10 DialogBox对话框窗口 弹出消息:图标和文字

INT_PTR WINAPI DialogBox(
  _In_opt_  HINSTANCE hInstance,//必须从WinMain的第一个参数获取
  _In_      LPCTSTR lpTemplate,
  _In_opt_  HWND hWndParent,
  _In_opt_  DLGPROC lpDialogFunc
);

最后参数是回调函数,函数类型如下:

typedef INT_PTR (CALLBACK* DLGPROC)(HWND, UINT, WPARAM, LPARAM);
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT message, WPARAM wParam, LPARAM lParam);

参数说明:

  1. hwndDlg:表示当前处理消息的对话框窗口句柄。您可以使用此句柄来操作对话框,例如在对话框中查找控件,设置控件属性等。

  2. message:表示接收到的消息类型。根据消息类型进行适当的处理,如在 switch 语句中针对不同的消息进行不同的操作。

  3. wParam:表示与消息相关的附加信息,通常用于传递一些简单的参数或数据。具体含义取决于收到的消息类型。

  4. lParam:也是用于传递消息相关的附加信息,但相对于 wParam 可以传递更多复杂的数据,例如指针、句柄等。同样,具体含义取决于收到的消息类型。

示例:

INT_PTR CALLBACK theProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg) 
	{
	case WM_COMMAND:
		switch (wParam)  //lParam 是控件的句柄
		{
            case IDOK:
			    MessageBox(hwndDlg,L"你点击了ok",L"提示",0);
			    break;
		    case IDCANCEL:
			    if (IDYES == MessageBox(hwndDlg, L"你确认退出吗", L"提示", MB_YESNO | MB_ICONQUESTION))
			    {
				    EndDialog(hwndDlg,888);
			    }
			    break;
		 }
		break;
	}

	return 0;
}

(WM_COMMAND 中 wParam是控件ID,Lparam是控件句柄)

11 EndDialog 关闭对话框

BOOL WINAPI EndDialog(
  _In_  HWND hDlg,
  _In_  INT_PTR nResult
);
INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDCANCEL:
			EndDialog(hwndDlg, IDCANCEL);
			break;
			
		}
		return TRUE;
	}

	return FALSE;
}

12 GetDlgItem 获取控件句柄

HWND WINAPI GetDlgItem(
  _In_opt_  HWND hDlg,
  _In_      int nIDDlgItem
);

13 GetDlgItemText 获取控件文字

UINT WINAPI GetDlgItemText(
  _In_   HWND hDlg,
  _In_   int nIDDlgItem,
  _Out_  LPTSTR lpString,
  _In_   int nMaxCount
);

另:第三个参数如果使用动态数组,预防数组溢出,如:

int textLengthLeft = GetWindowTextLength(hLeft);
TCHAR* sLeft = new TCHAR[textLengthLeft + 1];

GetWindowText(hLeft, sLeft, textLengthLeft + 1);

其中GetWindowTextLength获取指定窗口(通常是编辑框控件或者组合框控件)中的文本长度

int WINAPI GetWindowTextLength(
  _In_  HWND hWnd
);

14 SetDlgItemText 设置控件文字

BOOL WINAPI SetDlgItemText(
  _In_  HWND hDlg,
  _In_  int nIDDlgItem,
  _In_  LPCTSTR lpString
);

另:第三个参数如果要动态分配,例 把double类型的数值写入控件:

// 计算格式化后字符串的长度
int size = _scwprintf(L"%g", fValue) + 1;
wchar_t* s = new wchar_t[size];

// 将double型数据格式化存入字符串s
swprintf(s, size, L"%g", fValue);  //_snwprintf_s

// 设置控件的文本
BOOL result = SetDlgItemText(hDlg, nIDDlgItem, s);

delete[] s; // 释放动态分配的内存

其中_scwprintf  用于计算格式化后字符串长度的函数

int _scwprintf(
   const wchar_t *format [,
   argument] ...
);

类似的还有:

_scprintf, _scprintf_l, _scwprintf, _scwprintf_l  ……

15 WINDOWS位运算

定义在库minwinde.h中

#define MAKEWORD(a, b)      ((WORD)(((BYTE)(((DWORD_PTR)(a)) & 0xff)) | ((WORD)((BYTE)(((DWORD_PTR)(b)) & 0xff))) << 8))
#define MAKELONG(a, b)      ((LONG)(((WORD)(((DWORD_PTR)(a)) & 0xffff)) | ((DWORD)((WORD)(((DWORD_PTR)(b)) & 0xffff))) << 16))
#define LOWORD(l)           ((WORD)(((DWORD_PTR)(l)) & 0xffff))
#define HIWORD(l)           ((WORD)((((DWORD_PTR)(l)) >> 16) & 0xffff))
#define LOBYTE(w)           ((BYTE)(((DWORD_PTR)(w)) & 0xff))
#define HIBYTE(w)           ((BYTE)((((DWORD_PTR)(w)) >> 8) & 0xff))

1 MAKELONG  把两个2字节数合成一个四字节

DWORD MAKELONG(
  WORD wLow,
  WORD wHigh
);

2 MAKEWORD 合成两字节

WORD MAKEWORD(
  BYTE bLow,
  BYTE bHigh
);

3 LOWORD  取出四字节中的两个低字节

WORD LOWORD(
  DWORD dwValue
);

4 HIWORD 取出四字节中的两个高字节

WORD HIWORD(
  DWORD dwValue
);

5 LOBYTE 取出两字节数中的低字节

BYTE LOBYTE(
  WORD wValue
);

6 HIBYTE 取出两字节数中的高字节

BYTE HIBYTE(
  WORD wValue
);

示例:

DWORD dw = MAKELONG(0x5678,0x1234); //0X12345678
WORD w = MAKEWORD(0X34, 0X12);  //0X1234
WORD x = LOWORD(dw);           //0X5678
WORD y = HIWORD(dw);           //0X1234
BYTE a = LOBYTE(x);            //0X78
BYTE b = HIBYTE(x);            //0X56

16 OutputDebugString向调试器输出调试信息

void WINAPI OutputDebugString(
  _In_opt_  LPCTSTR lpOutputString
);

17 GetSystemMetrics 获取系统级变量的值

例如屏幕大小、图标大小、滚动条大小等

int WINAPI GetSystemMetrics(
  _In_  int nIndex
);

参数说明:

  • nIndex:要查询的系统指标的索引。

返回值:

  • 返回系统指标的值。具体的含义取决于传入的 nIndex 参数。
int screenWidth = GetSystemMetrics(SM_CXSCREEN);//屏幕宽
int screenHeight = GetSystemMetrics(SM_CYSCREEN);//屏幕高
int scrollWidth = GetSystemMetrics(SM_CXVSCROLL);//滚动条宽
int scrollHeight = GetSystemMetrics(SM_CYVSCROLL);//滚动条高

18 IsWindow 判断窗口是否存在或者已摧毁

BOOL IsWindow(
  HWND hWnd
);

19 IsWindowEnabled 判断窗口是否激活或者禁用

BOOL WINAPI IsWindowEnabled(
  _In_  HWND hWnd
);

示例:

HWND h = GetDlgItem(hwndDlg, IDOK);
EnableWindow(h, !IsWindowEnabled(h));

20 IsWindowVisible 判断窗口是否显示或隐藏

BOOL WINAPI IsWindowVisible(
  _In_  HWND hWnd
);

21 SetTimer 设置定时器

UINT_PTR SetTimer(
  HWND      hWnd,
  UINT_PTR  nIDEvent,
  UINT      uElapse,
  TIMERPROC lpTimerFunc
);

参数说明:

  • hWnd:指定接收定时器消息的窗口句柄。
  • nIDEvent:指定定时器的 ID 值,用于标识特定的定时器,可以通过它来取消定时器。
  • uElapse:指定定时器的时间间隔,以毫秒为单位。
  • lpTimerFunc:可选参数,指向定时器过程的指针。如果为NULL,则发送WM_TIMER消息

返回值:

  • 返回值为定时器的唯一标识符,用于标识该定时器。如果函数调用失败,则会返回0。

示例:

    switch (uMsg)
	{    
    case WM_TIMER:
	{
        //定时器进入 
		LPRECT lpRect = new RECT;
		GetWindowRect(hwndDlg, lpRect);
		int w = lpRect->right - lpRect->left;
		int h = lpRect->bottom - lpRect->top;

		MoveWindow(hwndDlg, lpRect->left + 2, lpRect->top, w, h, FALSE);//窗口向右移动
		return TRUE;
	}

		
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{
		case IDC_BTN_TIMER: //按下自定义按钮,开启定时器
			SetTimer(hwndDlg,1,1000,NULL);
			break;
		}
		return TRUE;
	}

22 查询拖入文件的函数

UINT DragQueryFile(
  _In_   HDROP hDrop,
  _In_   UINT iFile,//-1返回是拖入文件的总数,否则就是0-n代表第几个文件,输出参数是文件名(完整路径)
  _Out_  LPTSTR lpszFile,
  UINT cch
);

参数说明

  • 类型HDROP
  • 意义hDropInfo 是一个句柄,表示拖放操作的信息,包含所有拖放的文件的相关数据,例如文件路径和数量。

主要功能

  1. 获取文件数量:

    • 使用 DragQueryFile 函数,可以查询拖放的文件数量。
  2. 获取文件名:

    • 通过 DragQueryFile 函数,可以获取每个拖放的文件的完整路径。
  3. 释放资源:

    • 在函数执行完毕后,使用 DragFinish(hDropInfo) 来释放与拖放操作相关的资源。

示例:

void CMyWnd::OnDropFiles(HDROP hDropInfo) {
    TCHAR szFileName[MAX_PATH];
    UINT fileCount = DragQueryFile(hDropInfo, 0xFFFFFFFF, NULL, 0); // 获取文件数量

    for (UINT i = 0; i < fileCount; i++) {
        DragQueryFile(hDropInfo, i, szFileName, MAX_PATH); // 获取文件名
        // 处理文件逻辑
        AfxMessageBox(szFileName);
    }

    DragFinish(hDropInfo); // 释放资源
}

总结

  • hDropInfo 句柄是拖放操作的核心,它允许开发者获取相关文件的信息并进行处理。
  • 必须在处理完成后调用 DragFinish 释放资源,以避免资源泄漏。

23

附:

1.简单的windows数据类型

数据类型源数据类型含义
BOOLint布尔型,主要财值对象是 TRUE和FALSE
BYTEunsiged char单字节(8bits)无符号变量
WORDunsigred short双字节(16bits)无符号变量
DWORDunsigred long4字节(32bits)无符号变量
UINTunsigned int4字节(32bits)无符号变量
CHARchar单字节(8bits)有符号变量
SHORTshort双字节(16bits)有符号变量
LONG1ong4字节(32bits)有符号变量
INTint4字节(32bits)有符号变量
VOIDvoid无类型
PBOOL或 LPBOOLBOOL*BOOL 的指针类型
PBYTE 或 LPBYTEBYTE*BYTE 的指针类型
PWORD 或 LPWORDWORD*WORD 的指针类型
PDWORD 或 LPDWORDDWORD*DWORD 的指针类型
PCHARCHAR*CHAR 的指针类型
PSHORTSHORT*SHORT 的指针类型
PLONG或LPLONGLONG*LONG 的指针类型
PINT 或LPINTINT*INT韝益 的指针类型
PVOID 或LPVOIDVOID*无类型指针,可以指向任何类型的数据.
PSTR 或LPSTRchar*常用于指向字符串的指针
PCSTR 或 LPCSTRconst char*常用于指向字符串常量的指针
LRESULT32位:LONG  64位:LONG _PTR常用于函数返回值类型
WPARAN32位:UNIT 64位:UINT _PTR用于消息发送时的携带数据
LPARAM32位:LONG 64位:LONG PTR用于消息发送时的携带数据

2 句柄类型

数据类型源数据类型舍义
HANDLEvoid*通用句柄类型
HWNDstruct HWND_*窗口句柄
HDCstruct HDC_*设备内容句柄(或叫绘图句柄)
HPENstruct HPEN_*西笔句柄(或叫边框句柄)
HBRUSHstruct HBRUSH_*西刷句柄(或叫填充句柄)
HFONTstruct HFONT_*宁体句柄
HBITMAPstruct HBITMAP_*位图句柄
HGDIOBJvoid*通用 CDI对象句柄
HMENUstruct HMENU_*菜单句柄
HICONstruct HICON_*图标句柄
HCURSORstruct HCURSOR_*光标句柄
HINSTANCEstruct HINSTANCE *模块实例句柄
HMODULEHINSTANCE模块实例句柄

3 常用结构体类型

POINT
(PPOINT)
(LPPOINT)
typedef struct tagPOINT
{
    LONG  cx;
    LONG cy;
}POINT, *PPOINT, NEAR *NPPOINT, FAR *LPPOINT;
X,y 坐标点
SIZE
(PSIZE)
(LPSIZE)
typedefstruct tagSIZE
{
    LONG  cx;
    LONG cy;
}SIZE,*PSIZE,*LPSIZE;
高宽尺寸
RECT
(PRECT)
(LPRECR)

 
typedefstruct tagREC T
{
    LONG left;
    LONG top;
    LONG right;
    LONG bottom;
}RECT,*PRECT,NEAR *NPRECT,FAR *LPRECT;
上下左石
矩形区域

4一个基本的win32 对话框程序

#include <windows.h>
#include "resource.h"

INT_PTR CALLBACK DialogProc(HWND hwndDlg, UINT uMsg, WPARAM wParam, LPARAM lParam)
{
	switch (uMsg)
	{	
	case WM_COMMAND:
		switch (LOWORD(wParam))
		{

		case IDCANCEL:  // eg: 按下cancel按钮
			EndDialog(hwndDlg, IDCANCEL);
			break;
		}
		return TRUE;
	}

    // 对于未处理的消息,调用DefWindowProc函数
	return DefWindowProc(hwndDlg, uMsg, wParam, lParam);
}

int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, PWSTR pCmdLine, int nCmdShow)
{
	INT_PTR h = DialogBox(hInstance, (LPCTSTR)IDD_DIALOG1, NULL, DialogProc);
	return 0;
}

作为Microsoft 32位平台的应用程序编程接口, Win32 API是从事Windows应用程序开发所必备的。 首先对Win32 API函数做完整的概述;然后收录五大类函数: 窗口管理、图形设备接口、系统服务、国际特性以及网络服务; 在附录部分,讲解如何在Visual Basic和Delphi中对其调用。 本书是从事Windows应用程序开发的软件工程师的必备参考手册。 控件与消息函数 共91个函数 硬件与系统函数 共98个函数 设备场景函数 共73个函数 绘图函数 共105个函数 位图、图标和光栅运算函数 共39个函数 菜单函数 共37个函数 文本和字体函数 共41个函数 打印函数 共66个函数 文件处理函数 共118个函数 进程和线程函数 共40个函数 Windows消息函数 共11个函数 网络函数 共14个函数 目 录 第一章 Win32 API概论…………………………………………………………………………1 1.1 为什么使用Win32 API …………………………………………………………………1 1.2 Win32 API简介 …………………………………………………………………………1 1.3 综述………………………………………………………………………………………11 第二章 窗口管理函数(Windows Control Function) ……………………………………13 2.1 易用特性函数(Accessibility Features)…………………………………………13 2.2 按钮函数(Button)……………………………………………………………………20 2.3 插入标记(^)函数(Caret)…………………………………………………………21 2.4 组合框函数(Combo box) ……………………………………………………………24 2.5 通用对话框函数(Common Dialog Box) ……………………………………………25 2.6 标函数(Cursor)………………………………………………………………………36 2.7 对话框函数(Dialog Box)……………………………………………………………40 2.8 编辑控制函数(Edit Control)………………………………………………………54 2.9 图标函数(Icon)………………………………………………………………………54 2.10 键盘加速器函数(Keyboard Accelerator)……………………………………… 61 2.11 键盘输入函数(Keyboard InPut) …………………………………………………63 2.12 列表框函数(List box) ……………………………………………………………75 2.13 菜单函数(Menu) ……………………………………………………………………76 2.14 消息和消息队列函数(Message and Message Queue)……………………………90 2.15 鼠标输入函数(Mouse Input) ……………………………………………………100 2.16 多文档接口函数(Multiple Document Interface) ……………………………103 2.17 资源函数(Resource)………………………………………………………………105 2.18 滚动条函数(Scroll Bar)…………………………………………………………113 2.19 窗口函数(Window)…………………………………………………………………119 2.20 窗口类函数(Window Class)………………………………………………………144 2.21 窗口过程函数(Window Procedure)………………………………………………150 2.22 窗口属性函数(Window Property) ………………………………………………152 第三章 图形设备接口函数(Graphic Device Interface Function) …………………155 3.1 位图函数(Bitmap) …………………………………………………………………155 3.2 笔刷函数(Brush)……………………………………………………………………171 3.3 剪切函数(Clipping) ………………………………………………………………176 3.4 颜色函数(Color)……………………………………………………………………179 3.5 坐标空间与变换函数(Coordinate Space Transformation)……………………186 3.6 设备环境函数(Device Context) …………………………………………………195 3.7 填充形态函数(Filled shape) ……………………………………………………211 3.8 字体和正文函数(Font and Text)…………………………………………………215 3.9 ICM 2.0函数 …………………………………………………………………………238 3.10 线段和曲线函数(Line and Curve)………………………………………………295 3.11 图元文件函数(Metafile)…………………………………………………………300 3.12 多显示器函数(Multiple Display Monitors) …………………………………311 3.13 绘图函数和画图函数(Painting and Drawing)…………………………………313 3.14 路径函数(Path)……………………………………………………………………328 3.15 画笔函数(Pen) ……………………………………………………………………332 3.16 打印及打印假脱机程序函数(Printing and Print Spooler)…………………334 3.17 矩形函数(Rectangle) ……………………………………………………………371 3.18 区域函数(Region)…………………………………………………………………374 第四章 系统服务函数(System Service Function) ……………………………………383 4.1 访问控制函数(Access Control) …………………………………………………383 4.2 原子函数(Atom) ……………………………………………………………………406 4.3 客户/服务器访问控制函数(Client/Server Access Control) ………………409 4.4 剪贴板函数(Clipboard)……………………………………………………………431 4.5 通信函数(Communication)…………………………………………………………436 4.6 控制台函数(Console)………………………………………………………………444 4.7 数据解压库函数(Data Decompression Library) ………………………………463 4.8 调试函数(Debugging)………………………………………………………………466 4.9 设备输入输出函数(Device Input and Output)…………………………………472 4.10 动态数据交换函数(Dynamic Data Exchange) …………………………………474 4.11 动态数据交换管理函数(Dynamic Data Exchange Management)………………476 4.12 动态链接库函数(Dynamic-Link Library)………………………………………489 4.13 错误函数(Error) …………………………………………………………………496 4.14 事件日志函数(Event Logging) …………………………………………………499 4.15 文件函数(File)……………………………………………………………………503 4.16 文件安装库函数(File Installation Library) ………………………………542 4.17 文件映射函数(File Mapping)……………………………………………………546 4.18 文件系统函数 File System)………………………………………………………551 4.19 句柄和对象函数(Handle and Object)………………………………………………556 4.20 挂钩函数(Hook)………………………………………………………………………560 4.21 ImageHlp函数…………………………………………………………………………572 4.22 大整数操作函数(Iarge Integer Operations)……………………………………594 4.23 低层访问控制函数(Low-Level Access Control)………………………………596 4.24 LSAPI函数 …………………………………………………………………………617 4.25 邮槽函数(Mailslot)………………………………………………………………622 4.26 内存管理函数(Memory Management) ……………………………………………623 4.27 管道函数(Pipe) …………………………………………………………………655 4.28 电源管理函数(Power Management) …………………………………………… 663 4.29 进程和线程函数(Process and Thread)…………………………………………666 4.30 注册表函数(Registry)……………………………………………………………700 4.31 字符串操作函数(String Manipulation)……………………………………… 724 4.32 结构化异常处理函数(Structured Exception Handling) ……………………742 4.33 同步函数(Synchronization) ……………………………………………………745 4.34 系统信息函数(System Information)……………………………………………766 4.35 系统消息函数(System Message)…………………………………………………780 4.36 系统关机函数(System Shutdown) ………………………………………………781 4.37 磁带备份函数(Tape Backup) ……………………………………………………783 4.38 时间函数(Time)……………………………………………………………………789 4.39 计时器函数(Timer) ………………………………………………………………795 4.40 工具帮助函数(Tool Help) ………………………………………………………796 4.41 窗口站和桌面函数(Window Station and Desktop)……………………………799 4.42 Windows NT 4.0访问控制函数(Window NT 4.0 Access-Control)……………808 4.43 WinTrust函数(WinTrust)…………………………………………………………814 第五章 国际特性函数(International Peatures Punction)时性…………………………815 5.1 输入方法编辑函数(Input Method Editor)…………………………………………815 5.2 国家语言支持函数(National Language Support)………………………………… 828 5.3 Unicode和字符集函数(Unicode and Character Set)……………………………… 843 第六章 网络服务函数(Networding Service Function)……………………………………849 6.1 数据链路控制函数(DLC)………………………………………………………………849 6.2 网络函数(Net)…………………………………………………………………………849 6.3 NetBIOS函数……………………………………………………………………………896 6.4 网络DDE函数(Networking DDE)……………………………………………………897 6.5 RAS服务器管理函数(RAS Server Administration)………………………………901 6.6 远程访问服务函数(Remote Access Administration)………………………………910 6.7 服务函数(Service)……………………………………………………………………929 6.8 Windows网络函数(Windows Networking)……………………………………………930 附录1 如何在VB中调用DLL API ……………………………………………………………945 1 DLL API的声明……………………………………………………………………………945 2 DLL API的调用……………………………………………………………………………947 附录2 在Delphi中直接调用Windows API…………………………………………………953
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值