我定义了一个CWnd w
定义了一个WNDCLASS wnd
然后填写wnd里面的各项
wnd.cbClsExtra=0;
wnd.cbWndExtra=0;
wnd.hbrBackground=(HBRUSH)GetStockObject(BLACK_BRUSH);
wnd.hCursor=LoadCursor(NULL,IDC_CROSS);
wnd.hInstance=-----------------------------(这里该填写什么呢?)
wnd.hIcon=LoadIcon(NULL,IDI_ERROR);
wnd.lpfnWndProc=NULL;
wnd.lpszClassName="111";
wnd.lpszMenuName=NULL;
wnd.style=CS_HREDRAW | CS_VREDRAW;然后注册 AfxRegisterClass(&wnd);
最后创建显示窗口w.Create(wnd.lpszClassName,"123",WS_VISIBLE,CRect(0,0,300,300),this,1,NULL);

解决方案 »

  1.   

    好像还是有点问题呀,编译没出问题,但是运行出问题了,
    我用w.Create(AfxRegisterWndClass(0,0,0,0),"123",WS_VISIBLE,CRect(0,0,300,300),this,1,NULL);
    没有出问题,应该还是窗口结构类有问题
      

  2.   

    WNDCLASS wndcls;
    memset(&wndcls, 0, sizeof(WNDCLASS));   // start with NULL
    wndcls.style = CS_DBLCLKS | CS_HREDRAW | CS_VREDRAW;
    wndcls.lpfnWndProc = ::DefWindowProc; 
    wndcls.hInstance = AfxGetInstanceHandle();
    wndcls.hIcon = NULL;
    wndcls.hCursor = LoadCursor(NULL, IDC_ARROW);
    wndcls.hbrBackground = (HBRUSH) (COLOR_WINDOW + 1);
    wndcls.lpszMenuName = NULL;
    wndcls.lpszClassName = _T("MAIN_FRAME_CLASS");
    if ( !AfxRegisterClass(&wndcls) )
    return FALSE; DWORD dwStyle = WS_POPUP | WS_MINIMIZEBOX | WS_VISIBLE | WS_CLIPSIBLINGS | WS_CLIPCHILDREN | WS_OVERLAPPED | WS_SYSMENU;
    return CWnd::CreateEx(0,
    _T("MAIN_FRAME_CLASS"),
    lpszWindowName, dwStyle, rect, NULL, 0);给你一段例子,或许对你有用
      

  3.   

    哦,了解
    是wnd.lpfnWndProc=NULL 这个地方有问题 窗口过程应该不能为NULL吧
    不然窗口怎么运行呢?