windows API程序设计入门(简单练习)
窗口过程函数
#include <windows.h>
LRESULT CALLBACK windowProc(
HWND hwnd,
UINT uMsg,
WPARAM wParam,
LPARAM lParam
)
{
用绘图工具输出输出hello world!
PAINTSTRUCT ps;
HDC hdc = BeginPaint(hWnd, &ps);
TCHAR * p = L"Hello World!";
TextOutW(hdc, 0, 0, p, wcslen(p));
EndPaint(hWnd, &ps);
return DefWindowProc(hWnd, uMsg, wParam, lParam);
}
定义窗口主函数
int WINAPI WinMain(
HINSTANCE hInstance,
HINSTANCE hPrevInstance,
LPSTR lpCmdLine,
int nCmdShow
) {
设计窗口类
WNDCLASS wc;
wc.cbClsExtra = 0; //类的附加信息
wc.cbWndExtra = 0; //窗口附加信息
wc.hbrBackground = CreateSolidBrush(RGB(255, 255, 255)); //背景
wc.hCursor = LoadCursor(NULL, IDC_HAND); //加载系统默认光标
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION); //加载系统默认图标
wc.hInstance = hInstance; //传递给MyRegisterClass的hInstance参数值
wc.lpfnWndProc = windowProc; //窗口过程函数名字,消息处理函数
wc.lpszClassName = TEXT("temp_text"); //类的名字
wc.lpszMenuName = NULL; //菜单名字
wc.style = CS_HREDRAW | CS_VREDRAW;; //显示风格
注册窗口类
RegisterClass(&wc);
创建窗口
HWND hwnd = CreateWindow(
"temp_text", //类名
"window_name", //标题
WS_OVERLAPPEDWINDOW, //外观样式
400, //x坐标
400, //y坐标
400, //宽度
500, //高度
NULL, //父窗口句柄
NULL, //菜单句柄
hInstance, //应用程序的实例句柄
NULL); //附加数据
显示窗口
ShowWindow(hwnd, SW_SHOWNORMAL);
更新窗口
UpdateWindow(hwnd);
消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
return msg.wParam;
}
效果如下:
完!
总结
勤能补拙