从头开始创建 Visual C++ MFC 项目时如何添加图像?
Posted
技术标签:
【中文标题】从头开始创建 Visual C++ MFC 项目时如何添加图像?【英文标题】:How to add images when creating Visual C++ MFC project from scratch? 【发布时间】:2014-09-30 09:03:35 【问题描述】:我正在尝试创建非常简单的 c++ MFC 项目。由于它非常简单,我需要从头开始创建它。
到目前为止,我的代码如下所示。但现在我需要添加图片控件,因此我的 Intent 使用 CImage 类。但是要使用 CImage 类,我需要将 altimage.h 标头添加到我的项目中。但是当我这样做时,它给出了一个无法打开源文件 altimage.h 的错误。所以
-
我该如何克服这个问题。
如何在从头开始创建 MFC 项目时添加我需要的文件。
请帮我解决这个问题。
谢谢
#include <afxwin.h> //MFC core and standard components
//#include <altimage>
#include "resource.h" //main symbols
//-----------------------------------------------------------------------------------------
//Globals
//CEdit * TEST;
CEdit * RECOG_CHARS;
CButton * BTN_CONVERT;
CButton * BTN_QUIT;
CStatic * IMG_IMAGE;
class HWCR_FORM : public CDialog
public:
HWCR_FORM(CWnd* pParent = NULL) : CDialog(HWCR_FORM::IDD, pParent)
// Dialog Data, name of dialog form
enum IDD = ID_MAIN_INTERFACE ;
protected:
virtual void DoDataExchange(CDataExchange* pDX) CDialog::DoDataExchange(pDX);
//Called right after constructor. Initialize things here.
virtual BOOL OnInitDialog()
CDialog::OnInitDialog();
RECOG_CHARS = (CEdit *)GetDlgItem(CE_ID_TEXT);
BTN_CONVERT = (CButton *)GetDlgItem(CB_ID_START);
BTN_QUIT = (CButton *)GetDlgItem(CB_ID_QUIT);
IMG_IMAGE = (CStatic *)GetDlgItem(CS_ID_IMAGE);
HBITMAP image = (HBITMAP)LoadImage(NULL,L"C:\\Users\\Kasun\\Desktop\\image.bmp",IMAGE_BITMAP,150,120,LR_LOADFROMFILE);
IMG_IMAGE->SetBitmap(image);
RECOG_CHARS->SetWindowTextW(L"Hi there");
return true;
public:
DECLARE_MESSAGE_MAP()
;
//-----------------------------------------------------------------------------------------
class HWCR : public CWinApp
public:
HWCR()
public:
virtual BOOL InitInstance()
CWinApp::InitInstance();
SetRegistryKey(_T("Hills Of Darkness"));
HWCR_FORM dlg;
m_pMainWnd = &dlg;
INT_PTR nResponse = dlg.DoModal();
return FALSE;
//close function
;
//-----------------------------------------------------------------------------------------
//Need a Message Map Macro for both CDialog and CWinApp
BEGIN_MESSAGE_MAP(HWCR_FORM, CDialog)
END_MESSAGE_MAP()
//-----------------------------------------------------------------------------------------
HWCR theApp;
【问题讨论】:
【参考方案1】:首先,为了使用CImage
,你需要包含头文件
#include <atlimage.h>
而不是
#include <altimage>
其次,确保此文件的目录包含在 MSVC 路径中... 通常它应该被包含,因为这个头文件是 MFC / Win32 SDK 的一部分......检查 VS 属性中的目录。
Z.
【讨论】:
我已经改变了你提到的第一个,第二个我应该在属性中检查什么字段。你能告诉我要遵循的确切步骤吗?这将是极大的帮助。谢谢 所以你把 和它仍然失败?如果是这样,请验证文件 atlimage.h 确实存在于您的系统上。查看 Visual C++ 的安装目录。 是的,当我添加它时,当我将光标定位到它说无法打开源文件时,它会在错误中以红色强调#include。 我应该检查哪些属性以了解是否添加了这些标头 注意:这些 ATL 头文件不是 Visual Studio Express 的一部分。那是你安装的吗?以上是关于从头开始创建 Visual C++ MFC 项目时如何添加图像?的主要内容,如果未能解决你的问题,请参考以下文章
没有可用于新 C++ 项目的 MFC 模板 - Visual C++ Express
如何在 Visual C++ 2008 中将 MFC 应用程序项目添加到 Win32 应用程序项目
使用 C++ 和 Visual Studio 2008 的 MFC DLL
用于 Visual C++ 的简单面向对象的 2D 图形框架?