繁体   English   中英

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

[英]How to add picture box in win32 API using visual c++

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

在这里发布完整代码这是一项相当复杂的任务,但我会尝试给出一些如何做到这一点的指导:

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

  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是静态控件的句柄。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM