我正在以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);
}
我希望代码行足以满足您的答案。有人理解我遇到的问题吗?并且可以给我一个暗示在哪里进一步看?
答案 0 :(得分:0)
尝试添加:
GWnd* p= (GWnd*)main.GetActiveView();
而不是:
GWnd* p= main.GetActiveView();
然后使用此
p->GetDlgCtrlID()