gpt4 book ai didi

c - winapi c - 添加图像的任何简单方法?

转载 作者:太空宇宙 更新时间:2023-11-04 08:47:31 24 4
gpt4 key购买 nike

我是普通 winapi c 的新手,想知道是否有任何简单的方法可以将图像添加到我的 GUI,如果可能的话,我希望这个图像基本上成为代码的一部分,这样我只需要发送单个可执行文件向其他人发送 GUI 时的文件。

编辑:

#include <windows.h>

LRESULT CALLBACK WndProc(HWND, UINT, WPARAM, LPARAM);
HBITMAP g_hbmBall = NULL;
int WINAPI wWinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance,
PWSTR pCmdLine, int nCmdShow)
{
MSG msg;
HWND hwnd;
WNDCLASSW wc;

wc.style = CS_HREDRAW | CS_VREDRAW;
wc.cbClsExtra = 0;
wc.cbWndExtra = 0;
wc.lpszClassName = L"Window";
wc.hInstance = hInstance;
wc.hbrBackground = GetSysColorBrush(COLOR_3DFACE);
wc.lpszMenuName = NULL;
wc.lpfnWndProc = WndProc;
wc.hCursor = LoadCursor(NULL, IDC_ARROW);
wc.hIcon = LoadIcon(NULL, IDI_APPLICATION);

RegisterClassW(&wc);
hwnd = CreateWindowW( wc.lpszClassName, L"Window",
WS_OVERLAPPEDWINDOW | WS_VISIBLE,
100, 100, 350, 250, NULL, NULL, hInstance, NULL);

ShowWindow(hwnd, nCmdShow);
UpdateWindow(hwnd);

while( GetMessage(&msg, NULL, 0, 0)) {
DispatchMessage(&msg);
}

return (int) msg.wParam;
}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg,
WPARAM wParam, LPARAM lParam)
{
switch(msg)
{
case WM_CREATE:
g_hbmBall = LoadBitmap(GetModuleHandle(NULL), MAKEINTRESOURCE(IDB_BALL));
if(g_hbmBall == NULL)
MessageBox(hwnd, "Could not load IDB_BALL!", "Error", MB_OK | MB_ICONEXCLAMATION);
break;

case WM_PAINT:
{
BITMAP bm;
PAINTSTRUCT ps;

HDC hdc = BeginPaint(hwnd, &ps);

HDC hdcMem = CreateCompatibleDC(hdc);
HBITMAP hbmOld = (HBITMAP)SelectObject(hdcMem, g_hbmBall);

GetObject(g_hbmBall, sizeof(bm), &bm);

BitBlt(hdc, 0, 0, bm.bmWidth, bm.bmHeight, hdcMem, 0, 0, SRCCOPY);

SelectObject(hdcMem, hbmOld);
DeleteDC(hdcMem);

EndPaint(hwnd, &ps);
}
break;

case WM_DESTROY:

PostQuitMessage(0);
DeleteObject(g_hbmBall);
return 0;
}

return DefWindowProcW(hwnd, msg, wParam, lParam);
}

最佳答案

您可以在编译时通过.rc 文件将图像数据添加到可执行文件的资源中,然后在运行时通过LoadImage() 加载图像。 .如果你把 STATIC在您的 UI 上进行控制,您可以向其发送 STM_SETIMAGE显示图像的消息。

关于c - winapi c - 添加图像的任何简单方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21101673/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com