就是缺省的那个函数,md, 名字我一时想不起来了, 你看侯sir的深入浅出,上面好像是有的:)

解决方案 »

  1.   

    PreCreateWindow 中 cs.lpClassName=...
      

  2.   

    用 ::RegisterClass的话 就要写一个 窗口过程 
    LRESULT WINAPI WndProc(HWND hwnd,UINT msg,WPARAM wp ,LPARAM lp)
    {
    }
    cs.lpfnWndProc=WndProc
      

  3.   

    不行啊,如果是cs.;lpszClass="MyMainFrame",得到的是“建立空文档失败",我想fd兄的本意是cs.lpszClass=AfxRegisterWndClass(...),可这不符合我的要求! 
      

  4.   

    另外,我想不能直接注册WndProc,因为CWnd重载了消息处理过程(CWnd::DefWindowProc,CWnd::OnCmdMsg等等,反正我是看不大明白MFC里面的代码,再说,用WndProc的话又如何与CMainFrame类联系起来呢?
      

  5.   

    那就不要用MFC的框架,只用他里面的函数。按照Windows编程的模式来进行。
      

  6.   

    利用“超类化“BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
    {
    if( !CFrameWnd::PreCreateWindow(cs) )
    return FALSE;
    cs.dwExStyle &= ~WS_EX_CLIENTEDGE;// 利用超类化技术修改窗口类名(但对于基于对话框的窗口无效 ?!)
    WNDCLASS wc;
    ::GetClassInfo(AfxGetInstanceHandle(),cs.lpszClass,&wc);
    wc.lpszClassName="my class";
    ::AfxRegisterClass(&wc);
    cs.lpszClass="my class"; return TRUE;
    }快给我分 :)