【问题标题】:How to add images when creating Visual C++ MFC project from scratch?从头开始创建 Visual C++ MFC 项目时如何添加图像?
【发布时间】:2014-09-30 09:03:35
【问题描述】:

我正在尝试创建非常简单的 c++ MFC 项目。由于它非常简单,我需要从头开始创建它。

到目前为止,我的代码如下所示。但现在我需要添加图片控件,因此我的 Intent 使用 CImage 类。但是要使用 CImage 类,我需要将 altimage.h 标头添加到我的项目中。但是当我这样做时,它给出了一个无法打开源文件 altimage.h 的错误。所以

  1. 我该如何克服这个问题。
  2. 如何在从头开始创建 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; 

【问题讨论】:

    标签: c++ visual-studio-2010 visual-c++ mfc


    【解决方案1】:

    首先,为了使用CImage,你需要包含头文件

    #include <atlimage.h> 
    

    而不是

    #include <altimage>
    

    其次,确保此文件的目录包含在 MSVC 路径中... 通常它应该被包含,因为这个头文件是 MFC / Win32 SDK 的一部分......检查 VS 属性中的目录。

    Z.

    【讨论】:

    • 我已经改变了你提到的第一个,第二个我应该在属性中检查什么字段。你能告诉我要遵循的确切步骤吗?这将是极大的帮助。谢谢
    • 所以你把 和它仍然失败?如果是这样,请验证文件 atlimage.h 确实存在于您的系统上。查看 Visual C++ 的安装目录。
    • 是的,当我添加它时,当我将光标定位到它说无法打开源文件时,它会在错误中以红色强调#include。
    • 我应该检查哪些属性以了解是否添加了这些标头
    • 注意:这些 ATL 头文件不是 Visual Studio Express 的一部分。那是你安装的吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多