继承CStatic的派生类,Create时发生异常
继承CStatic的派生类,Create时发生错误!
FControlRect 是继承自CStatic的。
执行到Create时,会在CWnd::Attach()中断言到ASSERT(m_hWnd == NULL); 这一步。
网上找的 解释是“这个断言通常可能是由于试图把一个已经捆绑(attach)过的窗口捆绑在其他的对象上,只能有一个MFC对象能够捆绑到一个窗口上”。
不太理解这句话啊,m_pHeaderRect 只是 new 出来之后还没捆绑吧。
求解答啊。。。。
------解决方案--------------------
m_pHeaderRect是哪来的
------解决方案--------------------
我也继承了一个CStaticPicLabel
CStaticPicLabel* m_Pic;
m_Pic->Create(_T(""),WS_VISIBLE|WS_CHILD|SS_CENTERIMAGE|SS_BITMAP|SS_NOTIFY,CRect(100,100,500,500),this,IDB_XX);
这样没错误
------解决方案--------------------
要看看你的FControlRect类怎么写的?
------解决方案--------------------
[url=m_pHeaderRect->Create(str,style,rect,this,0);][/url]
顺便看看this是哪个窗口
------解决方案--------------------
- C/C++ code
CRect rect(0,0,HEADER_WIDTH, HEADER_HEIGHT); DWORD style = WS_CHILD | WS_VISIBLE | SS_CENTER |SS_NOTIFY ; m_pHeaderRect = new FControlRect(); m_pHeaderRect->Create(str,style,rect,this,0);
FControlRect 是继承自CStatic的。
执行到Create时,会在CWnd::Attach()中断言到ASSERT(m_hWnd == NULL); 这一步。
网上找的 解释是“这个断言通常可能是由于试图把一个已经捆绑(attach)过的窗口捆绑在其他的对象上,只能有一个MFC对象能够捆绑到一个窗口上”。
不太理解这句话啊,m_pHeaderRect 只是 new 出来之后还没捆绑吧。
求解答啊。。。。
------解决方案--------------------
m_pHeaderRect是哪来的
------解决方案--------------------
我也继承了一个CStaticPicLabel
CStaticPicLabel* m_Pic;
m_Pic->Create(_T(""),WS_VISIBLE|WS_CHILD|SS_CENTERIMAGE|SS_BITMAP|SS_NOTIFY,CRect(100,100,500,500),this,IDB_XX);
这样没错误
------解决方案--------------------
要看看你的FControlRect类怎么写的?
------解决方案--------------------
[url=m_pHeaderRect->Create(str,style,rect,this,0);][/url]
顺便看看this是哪个窗口
------解决方案--------------------
- C/C++ code
m_cStaticPos.Create(TEXT("位置:"),NULL,CRect(0,0,100,100),this,IDC_STATIC);