vc编程图片怎么放入

时间:2025-01-25 04:08:12 网络游戏

在VC编程中,有多种方法可以将图片放入应用程序中。以下是几种常见的方法:

方法一:使用CImage类加载图片

1. 包含头文件 `atlimage.h`。

2. 使用 `CImage` 类的 `Load` 函数加载图片,例如:

```cpp

include "atlimage.h"

CImage img;

HRESULT ret = img.Load(filename); // filename是要加载的文件名(包含路径)

HBITMAP bitmap = img.Detach();

```

方法二:在资源中添加图片

1. 建立一个基于窗口的MFC应用程序。

2. 在资源编辑器中,选择菜单栏中的 Insert-> Resource命令,弹出 Insert Resource窗口。

3. 选择 Bitmap选项,单击 Import按钮,选择想要添加的图片,图片默认的ID号为“IDB_BITMAP1”。

4. 在窗口资源中添加一个图片控件,并设置其属性,选择 TypeBitmapImageIDB_BITMAP1

方法三:在代码中动态加载图片

1. 在MFC工程的 `.cpp` 文件的初始化函数里加载图片,例如:

```cpp

BOOL Dlg::OnInitDialog() {

CRect rect;

CDC dc;

GetClientRect(&rect);

mdc = new CDC;

bitmap = new CBitmap;

bgmap = new CBitmap;

bemap = new CBitmap;

mdc->CreateCompatibleDC(&dc);

bgmap->LoadImage(NULL, "无标题.bmp", IMAGE_BITMAP, rect.right, rect.bottom, LR_LOADFROMFILE);

bitmap->LoadImage(NULL, "标题.bmp", IMAGE_BITMAP, rect.right, rect.bottom, LR_LOADFROMFILE);

return TRUE;

}

```

方法四:使用IMAGE对象

1. 定义 `IMAGE` 对象,读取图片至 `IMAGE` 对象,然后显示到需要的位置,例如:

```cpp

include

void main() {

initgraph(640, 480);

IMAGE img;

loadimage(&img, "C:\\test.jpg");

putimage(0, 0, &img);

getch();

closegraph();

}

```

方法五:使用IPicture接口加载JPG图片

1. 使用 `CFile` 和 `IStream` 对象加载JPG图片,例如:

```cpp

CString m_filename("D:\\009.jpg");

CFile m_file(m_filename, CFile::modeRead);

DWORD m_filelen = m_file.GetLength();

HGLOBAL m_hglobal = GlobalAlloc(GMEM_MOVEABLE, m_filelen);

LPVOID pvdata = NULL;

pvdata = GlobalLock(m_hglobal);

m_file.ReadHuge(pvdata, m_filelen);

IStream *m_stream;

GlobalUnlock(m_hglobal);

CreateStreamOnHGlobal(m_hglobal, TRUE, &m_stream);

IPicture *m_picture;

OLE_XSIZE_HIMETRIC m_width;

OLE_YSIZE_HIMETRIC m_height;

m_stream->Read(&m_picture, &m_width, &m_height, NULL);

// 使用 m_picture 进行绘图操作

```

总结

以上方法各有优缺点,选择哪种方法取决于具体的应用场景和需求。对于简单的图片显示,使用 `CImage` 或在资源中添加图片可能更为方便。对于需要动态加载或处理多种格式的图片,使用 `IMAGE` 对象或 `IPicture` 接口可能更为灵活。