在VC.NET上使用Class Wizard新建立一个 SDI,名字叫myKB(不选Document/View architecture support )。
默认有CAboutDlg :public CDialog
CChildView :public CWnd
CMainFrame :public CFrameWnd
CmyKBApp :public CWinApp
若是想使用CWnd::CreateEx建立窗口,应该怎么改?在什么地方添加什么函数?
我出学VC,请大师讲详细点!谢谢!

解决方案 »

  1.   

    为什么要用CreateWindow呢?
    MFC已经把它给封起来了,那个函数完成的功能。CWnd::Create()应该都能实现啊。
      

  2.   

    让窗口不能移动,大小不能变化,所以的用CWnd::CreateEx()。
    CWnd::Create()能实现吗?若是可以,怎么用?
    还有,就是用CWnd::Create(),也得改变基类吧?
      

  3.   

    你创建的是一个SDI呀!还要CWnd::CreateEx,那你还是放到APP类中好了。关于什么类改做些什么,多研究研究你就明白了。
      

  4.   

    在APP中有一个主窗体的指针,用来调用主窗体的创建。
    直接写到构造函数中就行了。
      

  5.   

    那个函数的app?能详细一点吗?我一头雾水!
      

  6.   

    AfxGetMainWindow()
    好像查  msdn
      

  7.   

    CMYApp呀,你随便写个程序,在CMYApp的初始化中看看原码。
      

  8.   

    CMyApp的基类是CWinApp,而我想写的代码:
     CString strWndClass = AfxRegisterWndClass (
            0,
            NULL,
            (HBRUSH) (COLOR_3DFACE + 1),
            AfxGetApp ()->LoadStandardIcon (IDI_WINLOGO)
        );
        CreateEx (0, strWndClass, _T ("Visual Keyboard"),
            WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
            NULL, NULL);
    }
     CreateEx是CWnd的,怎么能在CWinApp中调用呢?不明白!
      

  9.   

    看来是不太行!刚看看MSDN,有段小小的例子,
    他是在他的CMyDlg的函数中用的CreateEx(),它的CMyDlg必然基类于CDialog.那么CFrameWnd  Cdialog  CView都是由CWnd而来。看来你只好写到以这些类为基类的派生类中了。
      

  10.   

    把以上代码直接写在CChildView里是行不通的,应怎么改呢?
      

  11.   

    不知道你是怎么判断是否要CreateEx()的?应该在一个正确的位置。比如,菜单的选项使其创建,那么你的CreateEx就应该在CFrameWnd的响应这个才单的函数里。你放到View里,怎么让他执行?
      

  12.   

    CFrameWnd是可以选择基类的,用CreateEx时,CFrameWnd::public CWnd
      

  13.   

    用class wizard生成的sdi,要添加下列代码:
    CString strWndClass = AfxRegisterWndClass (
            0,
            NULL,
            (HBRUSH) (COLOR_3DFACE + 1),
            AfxGetApp ()->LoadStandardIcon (IDI_WINLOGO)
        );
        CreateEx (0, strWndClass, _T ("Visual Keyboard"),
            WS_OVERLAPPED | WS_SYSMENU | WS_CAPTION | WS_MINIMIZEBOX,
            CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT, CW_USEDEFAULT,
            NULL, NULL);
    }都应该添加到什么文件的什么位置?要去掉什么函数?
      

  14.   

    是不是什么地方都可以啊,由于我没用过AfxRegisterWndClass函数,你注册的窗口只要不是和系统冲突,哪儿都可以的。
      

  15.   

    To
    athere_08(于斯) :当然不是在哪里都可以.ClassWizard已经都添加了。注册,创建
    都是在不同的地方,有的在CChildView,有的在CMainFrame中,所以我不知道该在那里