#include <Windows.h>

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) { // 注册窗口类 WNDCLASS wc = {0}; wc.lpfnWndProc = WndProc; wc.hInstance = hInstance; wc.hbrBackground = (HBRUSH)(COLOR_BACKGROUND); wc.lpszClassName = "FloatingWindow"; RegisterClass(&wc);

// 创建窗口
HWND hwnd = CreateWindow("FloatingWindow", NULL, WS_POPUP, 0, 0, 200, 200, NULL, NULL, hInstance, NULL);

// 设置窗口位置
int screenWidth = GetSystemMetrics(SM_CXSCREEN);
int screenHeight = GetSystemMetrics(SM_CYSCREEN);
SetWindowPos(hwnd, HWND_TOPMOST, screenWidth - 200, screenHeight - 200, 200, 200, SWP_SHOWWINDOW);

// 显示图片
HBITMAP hBitmap = (HBITMAP)LoadImage(NULL, "image.jpg", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE);
HDC hdc = GetDC(hwnd);
HDC memDC = CreateCompatibleDC(hdc);
SelectObject(memDC, hBitmap);
BITMAP bmp;
GetObject(hBitmap, sizeof(BITMAP), &bmp);
BitBlt(hdc, 0, 0, bmp.bmWidth, bmp.bmHeight, memDC, 0, 0, SRCCOPY);
ReleaseDC(hwnd, hdc);
DeleteDC(memDC);

// 显示窗口
ShowWindow(hwnd, SW_SHOW);
UpdateWindow(hwnd);

// 消息循环
MSG msg;
while (GetMessage(&msg, NULL, 0, 0)) {
    TranslateMessage(&msg);
    DispatchMessage(&msg);
}

return msg.wParam;

}

LRESULT CALLBACK WndProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) { case WM_DESTROY: PostQuitMessage(0); break; default: return DefWindowProc(hwnd, msg, wParam, lParam); } return 0; }

C++ 实现桌面右下角浮窗显示图片 - 代码示例

原文地址: https://www.cveoy.top/t/topic/pPzB 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录