无法使复制/分配构造函数工作

时间:2014-11-05 21:54:30

标签: c++ windows mfc

我正在以WinAPI为基础制作类似MFC的类构建。 现在我遇到的问题是我在执行代码时遇到运行时错误。

在我的主要内容中存在以下几行:

void MyApp::Init(int nCmd)
{
    main.Create(L"This is the MainFrame Window");
    main.ActivateFrame(nCmd);   
    GWnd* p= main.GetActiveView();//Get pointer to the first view of the FrameWnd
    //p->GetID();
}

注释掉的行会导致错误。 GWnd类构造函数:

//Standard classname
GWnd::GWnd() :m_ClassName(L"Wnd"), BaseWnd(), m_pOwnerWnd(NULL)
{
    GWnd::Init();
}
//Userdefined Classname
GWnd::GWnd(LPCWSTR ClassName) : m_ClassName(ClassName), BaseWnd(), m_pOwnerWnd(NULL)
{
    GWnd::Init();
}
//Copy constructor
GWnd::GWnd(const GWnd& Wnd) : BaseWnd(GetHwnd()), m_pOwnerWnd(NULL)
{
    m_ClassName = L"Wnd";
}

分配功能:

//Operators
operator HWND() { return BaseWnd<GWnd>::GetHwnd(); }
GWnd operator=(GWnd Wnd) 
{
    GWnd tmp(Wnd);
}

我希望代码行足以满足您的答案。有人理解我遇到的问题吗?并且可以给我一个暗示在哪里进一步看?

1 个答案:

答案 0 :(得分:0)

尝试添加:

GWnd* p= (GWnd*)main.GetActiveView();

而不是:

GWnd* p= main.GetActiveView();

然后使用此

p->GetDlgCtrlID()