#pragma once
#include "Prop1.h"
#include "Prop2.h"
#include "Prop3.h"
// CPropSheet
class CPropSheet : public CPropertySheet
{
DECLARE_DYNAMIC(CPropSheet)public:
CPropSheet(UINT nIDCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd = NULL, UINT iSelectPage = 0);
virtual ~CPropSheet();protected:
DECLARE_MESSAGE_MAP()
public:
CProp1 m_prop1;     //是IDD_OLE_PROPPAGE_LARGE类型的,“对话框节点”,显示效果挺像标签页
CProp2 m_prop2;     //是IDD_OLE_PROPPAGE_LARGE类型的
CProp3 m_prop3;     //是IDD_OLE_PROPPAGE_LARGE类型的
};
// PropSheet.cpp : 实现文件
//
#include "stdafx.h"
#include "LV83.h"
#include "PropSheet.h"
// CPropSheetIMPLEMENT_DYNAMIC(CPropSheet, CPropertySheet)CPropSheet::CPropSheet(UINT nIDCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(nIDCaption, pParentWnd, iSelectPage)
{
AddPage(&m_prop1);
AddPage(&m_prop2);
AddPage(&m_prop3);
}CPropSheet::CPropSheet(LPCTSTR pszCaption, CWnd* pParentWnd, UINT iSelectPage)
:CPropertySheet(pszCaption, pParentWnd, iSelectPage)
{
AddPage(&m_prop1);
AddPage(&m_prop2);
AddPage(&m_prop3);
}CPropSheet::~CPropSheet()
{
}BEGIN_MESSAGE_MAP(CPropSheet, CPropertySheet)
END_MESSAGE_MAP()// CPropSheet 消息处理程序void CLV83View::OnTest()    //这个是在菜单栏添加的按钮
{
// TODO: 在此添加命令处理程序代码
CPropSheet propSheet(_T("我来啦~~"));
propSheet.DoModal();
}
CProp1 m_prop1是IDD_OLE_PROPPAGE_LARGE类型的“对话框节点”,PropSheet是从CPropertySheet继承的那个啥
CLV83View::OnTest()是菜单栏的按钮,用来显示对话框,点击之后却提示“无法获取所需资源”,不知道这是怎么回事啊?

解决方案 »

  1.   

    CProp1    CProp2     CProp3 
    的实现部分有问题~
      

  2.   

    手动关联该怎么做啊?
    在PropSheet.h里添加这三行是资源头文件么?
    #include "Prop1.h"
    #include "Prop2.h"
    #include "Prop3.h"
    这是CProp1的h和cpp文件
    #pragma once
    // CProp1 对话框class CProp1 : public CPropertyPage
    {
    DECLARE_DYNAMIC(CProp1)public:
    CProp1();
    virtual ~CProp1();// 对话框数据
    enum { IDD = IDD_Prop1 };protected:
    virtual void DoDataExchange(CDataExchange* pDX);    // DDX/DDV 支持 DECLARE_MESSAGE_MAP()
    };
    // Prop1.cpp : 实现文件
    //
    #include "stdafx.h"
    #include "LV83.h"
    #include "Prop1.h"// CProp1 对话框IMPLEMENT_DYNAMIC(CProp1, CPropertyPage)CProp1::CProp1()
    : CPropertyPage(CProp1::IDD)
    {}CProp1::~CProp1()
    {
    }void CProp1::DoDataExchange(CDataExchange* pDX)
    {
    CPropertyPage::DoDataExchange(pDX);
    }BEGIN_MESSAGE_MAP(CProp1, CPropertyPage)
    END_MESSAGE_MAP()// CProp1 消息处理程序
      

  3.   

     m_prop1- m_prop3你有给他们初始化吗?一个刚定义的变量拿过来进行AddPage操作?
      

  4.   

    貌似是在APP类里缺少相关的定义。记得我在做属性页练习时也出现此问题,后来在InitInstance函数中添加了如下语句就ok了。
    // 定义属性对话框对象
    CMySheet MySheet