Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/33.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 如何创建从CWnd弹出窗口派生的文件?_C++_Mfc_Cwnd - Fatal编程技术网

C++ 如何创建从CWnd弹出窗口派生的文件?

C++ 如何创建从CWnd弹出窗口派生的文件?,c++,mfc,cwnd,C++,Mfc,Cwnd,我通过类向导从CWnd创建了类CSurfaceWnd。我试图创建窗口,但出现错误。 这是我创建的代码: if(!m_pSurfaceWnd) { CString m_NameClass = AfxRegisterWndClass( CS_VREDRAW | CS_HREDRAW, ::LoadCursor(NULL, IDC_ARROW), (HBRUSH) ::GetStockObject(

我通过类向导从CWnd创建了类CSurfaceWnd。我试图创建窗口,但出现错误。 这是我创建的代码:

    if(!m_pSurfaceWnd)
    {
        CString m_NameClass = AfxRegisterWndClass(
            CS_VREDRAW | CS_HREDRAW,
            ::LoadCursor(NULL, IDC_ARROW),
            (HBRUSH) ::GetStockObject(WHITE_BRUSH),
            ::LoadIcon(NULL, IDI_APPLICATION));
    m_pSurfaceWnd = new CSurfaceWnd;

    CRect rcTemp;
    GetWindowRect(rcTemp);

    VERIFY(m_pSurfaceWnd->CreateEx(WS_EX_CLIENTEDGE, m_NameClass, NULL, WS_POPUP | WS_VISIBLE, rcTemp, mpWnd, 1));

    //DWORD dw =GetLastError();

    m_pSurfaceWnd->ShowWindow(SW_SHOW);
}
else
    m_pSurfaceWnd->ShowWindow(SW_SHOW);
你怎么能看到我正在创建弹出窗口,这就是为什么我使用CreateEx。我已经注册了这个类,在调试模式下,我在m_NameClass中看到了许多新类。但是createx返回false。 请帮帮我。也许你会看到一些我看不到的错误。请不要把我发送到MSDN,我已经读了很多次了。
谢谢

首先,您必须检查mpWnd是否为有效对象

BOOL isValid = ::IsWindow(mpWnd->GetSafeHwnd());
如果mpWnd是无效值,CreateEx函数将返回0,因为WS_弹出式样式