在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. 在窗口资源中添加一个图片控件,并设置其属性,选择 Type为 Bitmap, Image为 IDB_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` 接口可能更为灵活。