对话框程序中加一个按钮Button1.类CMyPropertySheet 从http://www.vckbase.com/document/viewdoc/?id=1805获得
CServerPge 、CUserPge是CPropertyPage派生的,现在问题是myps的hwnd是0.另外再问个问题:派生CServerPge出现enum { IDD = _UNKNOWN_RESOURCE_ID_ };(编译不过去)后来我手工改成enum { IDD = ID_UerPage }; 并修改资源编译成功了
void CMyDlg::OnButton1() 
{
CMyPropertySheet myps(_T("选项"),this,0);
CServerPge m_pgeServer;
CUserPge m_pgeUser;
myps.AddPage(&m_pgeServer);
myps.AddPage(&m_pgeUser);
myps.AddIcon(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_GLOBAL)));
myps.AddIcon(::LoadIcon(AfxGetInstanceHandle(), MAKEINTRESOURCE(IDI_ADDITION)));
myps.DoModal();
}

解决方案 »

  1.   

    上面第2个问题忘记提了
    请问在MFC中CServerPge应该怎么创建。请写出正确步骤
      

  2.   

    你的问题很模糊,什么叫“实例化后”?你在哪里看的?hWnd是哪个变量?你的代码中没看到。
    不过如果在myps.DoModal()之后的代码中,窗口是销毁了的。
      

  3.   

    终于有人回答了!
    是我表达没清楚CMyPropertySheet   myps(_T("选项"),this,0);  之后myps的hwnd为0;
    问题出在myps.DoModal()这句,是mfc的断言报错
    奇怪的是我调试例子程序的时候myps的hwnd也为0;但是没有出错 (例子是用的vc2005)
      

  4.   

    DoModal之前,窗口没有创建;DoModal之后,窗口销毁了。另外没有hwnd这个变量。
      

  5.   

    很奇怪,vckbase那个例子hwnd也是为0,但是它是可以使用的
    Mackz
    DoModal之前,窗口没有创建这个窗口我应该怎么创建
      

  6.   

    DoModal时创建.
    DoModal之前为0.//因为窗口没有创建.
    DoModal之后为0.//因为窗口已经销毁.另:代码看不出什么问题,看样子是资源的问题.