我在不使用Document/View时定义了如下的窗口类: CChildView : public CWnd
{
.....
};在CMainFrame::OnCreate里创建该CChildView时遇到了一个匪夷所思的问题:
下面的两种创建方式// CChildView m_wndView;
CRect rect;
GetClientRect(rect);
m_wndView.Create(NULL, NULL, WS_CHILD | WS_VISIBLE, rect, this, 2/*任何一个数字都行*/, NULL);和m_wndView.Create(NULL, NULL, WS_CHILD | WS_VISIBLE, CRect(0,0,0,0), this, AFX_IDW_PANE_FIRST, NULL);都能创建窗口,但是第二种必须要使用AFX_IDW_PANE_FIRST才能创建成功,按道理来说这个宏只是一个ID,不知道MFC在里面做了什么工作,请高手赐教。 

解决方案 »

  1.   

    自己去Trace代码看看发生了什么事情,加断点,看看出错原因吧。
      

  2.   

    楼上的,你TRACE过吗,你可以试试
      

  3.   

    分支太多,而且还有HOOK,反正没弄出来,上来求个思路
      

  4.   

    那天我试了下,好像是需要传一个菜单的ID。因为这个ID最后在CWnd的Create中被转换为HMENU。
    详细信息,你去跟下CWnd的Create这个方法。
      

  5.   

    关键是AFX_IDW_PANE_FIRST的用法比较怪异