#include <windows.h> int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 加载图片 HBITMAP hBitmap = (HBITMAP) LoadImage(NULL, "example.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE); // 创建窗口 HWND hWnd = CreateWindowEx(0, "STATIC", NULL, WS_VISIBLE | WS_CHILD | SS_BITMAP, 0, 0, 0, 0, NULL, NULL, hInstance, NULL); // 将图片显示到窗口上 SendMessage(hWnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM) hBitmap); // 消息循环 MSG msg; while (GetMessage(&msg, NULL, 0, 0)) { TranslateMessage(&msg); DispatchMessage(&msg); } // 释放资源 DeleteObject(hBitmap); return msg.wParam; }
时间: 2024-03-22 15:40:39 浏览: 105
Windows编程基础--窗体篇.rar_WinMain_Windows编程_pcm_winapi_winbase.h
5星 · 资源好评率100%
这段代码是一个简单的 Windows GUI 应用程序,用于加载一张位图图片并显示到窗口上。
首先,使用 `LoadImage` 函数加载图片文件,并将返回的句柄转换为 `HBITMAP` 类型。其中,`NULL` 参数表示使用默认的模块句柄,`"example.bmp"` 表示图片文件的路径,`IMAGE_BITMAP` 表示加载的是一个位图图片,`0` 表示图片的宽度和高度使用原始大小,`LR_LOADFROMFILE` 表示从文件中加载图片。如果加载成功,函数返回一个句柄,否则返回 NULL。
接下来,使用 `CreateWindowEx` 函数创建一个静态文本控件,作为图片的容器。其中,`0` 表示不使用扩展样式,`"STATIC"` 表示创建一个静态文本控件,`WS_VISIBLE` 和 `WS_CHILD` 表示控件可见并且作为父窗口的子控件,`SS_BITMAP` 表示控件显示位图图片。`hInstance` 参数表示应用程序实例的模块句柄,可以使用 `NULL` 表示使用默认值。
然后,使用 `SendMessage` 函数将位图图片显示到窗口上。其中,`STM_SETIMAGE` 表示设置控件显示的图片,`IMAGE_BITMAP` 表示使用位图图片,`hBitmap` 表示图片的句柄。
最后,使用消息循环处理窗口消息,直到接收到退出消息为止。在消息循环中,使用 `GetMessage` 函数从消息队列中获取消息,并使用 `TranslateMessage` 和 `DispatchMessage` 函数将消息翻译和分派给窗口过程函数进行处理。
注意,在程序结束时需要调用 `DeleteObject` 函数释放位图图片的资源。
阅读全文