Microsoft 游戏开发工具包(GDK)使用 Win32 编程样式,包括窗口和消息。 尽管大部分内容与你在 Windows 电脑上可能遇到的情况相同,但本主题介绍了主机支持的功能以及与 Windows 电脑的区别。
创建主窗口
每个游戏必须有一个 WinMain
作为入口点函数。 在 WinMain
内,游戏应该执行以下操作。
- 注册窗口类。
- 指定窗口过程。
- 创建窗口。
- 抽取消息循环。
在主机上,窗口就好像消息的目标。
主机上支持的窗口消息
在主机上,支持来自键盘和鼠标的基本输入和窗口生命周期。 支持以下系统消息:
WM_ACTIVATE
WM_ACTIVATEAPP
WM_CHAR
WM_CREATE
WM_DESTROY
WM_DPICHANGED
WM_KEYDOWN
WM_KEYUP
WM_KILLFOCUS
WM_LBUTTONDOWN
WM_LBUTTONUP
WM_MBUTTONDOWN
WM_MBUTTONUP
WM_MOUSEMOVE
WM_MOUSEWHEEL
WM_QUIT
WM_RBUTTONDOWN
WM_RBUTTONUP
WM_SETFOCUS
WM_SHOWWINDOW
WM_SIZE
WM_SYSKEYDOWN
WM_SYSKEYUP
WM_THEMECHANGED
WM_TIMER
WM_USER
WM_XBUTTONDOWN
WM_XBUTTONUP
主机上支持的 WinUser 函数
主机仅支持 winuser.h 的一个子集。 主机仅支持以下窗口函数。
AdjustWindowRect
AdjustWindowRectEx
CallWindowProc
CreateWindowEx
DefWindowProc
DestroyCursor
DestroyWindow
DispatchMessage
GetClientRect
GetCursorInfo
GetCursorPos
GetMessage
GetWindowLong
GetWindowLongPtr
KillTimer
LoadCursor
MoveWindow
PeekMessage
PostMessage
PostQuitMessage
PostThreadMessage
RegisterClass
RegisterClassEx
SendMessage
SetCursor
SetTimer
SetWindowLong
SetWindowLongPtr
SetWindowPos
ShowCursor
ShowWindow
TranslateMessage
UnregisterClass