#include <windows.h>
LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM) ;
int WINAPI WinMain (HINSTANCE hInstance,//实例句柄
HINSTANCE hPrevInstance,//应用程序的先前实例的句柄;对于一个32位程序,该参数总为NULL
PSTR szCmdLine,//指定传递给应用程序的命令行参数
int iCmdShow)//启动参数,表示“常规窗口”、“最小化”、“最大化”等启动状态
{
static TCHAR szAppName[] = TEXT ("HelloWin") ;
HWND hwnd ;//窗口句柄
MSG msg ;//消息结构体;用于从消息队列获取消息的结构体参数
WNDCLASS wndclass ;//窗口结构体
wndclass.style = CS_HREDRAW | CS_VREDRAW ; //窗口样式
wndclass.lpfnWndProc = WndProc ; //窗口消息处理过程函数
wndclass.cbClsExtra = 0 ; //预留的位元组数
wndclass.cbWndExtra = 0 ; //预留的位元组数
wndclass.hInstance = hInstance ; //赋予实例句柄
wndclass.hIcon = LoadIcon (NULL, IDI_APPLICATION) ;//图标
wndclass.hCursor = LoadCursor (NULL, IDC_ARROW) ; //游标
wndclass.hbrBackground = (HBRUSH) GetStockObject (WHITE_BRUSH) ; //背景色
wndclass.lpszMenuName = NULL ; //菜单栏名字表
wndclass.lpszClassName = szAppName ; //程序类名
//检测是否是NT之类的系统
if (!RegisterClass (&wndclass))//注册一个窗口类别
{
MessageBox (NULL, TEXT ("This program requires Windows NT!"), //显示消息框
szAppName, MB_ICONERROR) ;
return 0 ;
}
//基于窗口类创建一个窗口
hwnd = CreateWindow (szAppName, //窗口类名称
TEXT ("填充"), //窗口标题
WS_OVERLAPPEDWINDOW, //窗口风格
CW_USEDEFAULT, //初始X坐标
CW_USEDEFAULT, //初始y坐标
CW_USEDEFAULT, //初始x尺寸
CW_USEDEFAULT, //初始y尺寸
NULL, //父窗口句柄
NULL, //窗口菜单句柄
hInstance, //程序实例句柄
NULL) ; //创建参数
ShowWindow (hwnd, iCmdShow) ; //显示窗口
UpdateWindow (hwnd) ;//优先WM_PAINT绘制窗口
//从消息队列获取消息
while (GetMessage (&msg, NULL, 0, 0))
{
TranslateMessage (&msg) ;//翻译一些键盘消息
DispatchMessage (&msg) ;//将消息发送给窗口过程
}
return msg.wParam ;
}
LRESULT CALLBACK WndProc (HWND hwnd, //窗口句柄
UINT message, //消息ID
WPARAM wParam, //消息数据
LPARAM lParam)//消息数据
{
HDC hdc ;//设备环境句柄
PAINTSTRUCT ps ;//绘图信息结构体
RECT rect ;//矩形结构体
//处理消息ID
switch (message)
{
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;//窗口绘制开始
GetClientRect (hwnd, &rect) ; //获取窗口客户区的尺寸
EndPaint (hwnd, &ps) ; //结束窗口绘制
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;//将‘退出’消息插入消息队列
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;//执行默认的消息处理
}
(win32)main&proc
最新推荐文章于 2022-02-28 18:40:37 发布