gpt4 book ai didi

c++ - 如何使用visual c++在win32 API中添加图片框

转载 作者:可可西里 更新时间:2023-11-01 15:22:13 32 4
gpt4 key购买 nike

我在 Visual C++ 中有一个 Window (win32 API) 应用程序。我没有使用 MFC。我必须向我的应用程序添加一个图片框并定期更改此图片框的图像。任何人都可以帮助我完成上述任务吗?提前致谢。

最佳答案

在此处发布完整代码是一项相当复杂的任务,但我将尝试提供一些有关如何执行此操作的指南:

第一种方法是加载图像并绘制它

  1. 加载您的图像(不幸的是,普通的 Win32 API 支持相当多的图像格式 BMP、ICO ...)。

    HBITMAP hImage = (HBITMAP)LoadImage(NULL, (LPCSTR)file, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE | LR_LOADTRANSPARENT);
  2. 将上面的句柄存储在您的应用程序中的某个位置,您可以从您的 WindowProcedure 访问它

  3. 在 WM_PAINT 消息的 WinProc 中,您需要绘制图像。代码是这样的:

    HDC hdcMem = CreateCompatibleDC(hDC); // hDC is a DC structure supplied by Win32API
    SelectObject(hdcMem, hImage);
    StretchBlt(
    hDC, // destination DC
    left, // x upper left
    top, // y upper left
    width, // destination width
    height, // destination height
    hdcMem, // you just created this above
    0,
    0, // x and y upper left
    w, // source bitmap width
    h, // source bitmap height
    SRCCOPY); // raster operation

应该可以。

现在,第二种方法是创建一个静态控件,类型为 SS_BITMAP 并将其图像设置为:

hImage = LoadImage(NULL, file, IMAGE_BITMAP, w, h, LR_LOADFROMFILE);
SendMessage(hwnd, STM_SETIMAGE, IMAGE_BITMAP, (LPARAM)hImage);

其中 hwnd 是静态控件的句柄。

关于c++ - 如何使用visual c++在win32 API中添加图片框,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1754037/

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