我用下面语句生成一个窗口,程序编译连接正常,可是执行程序后却没有出现所要产生的窗口,是那里有问题吗?请指教!!
对于window的create函数其参数中的子窗口id是怎么定义的呀?想我这样随便设成1000,是不是有可能重复呀?
int CHelloView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
if (CScrollView::OnCreate(lpCreateStruct) == -1)
return -1;

HWND hWnd = GetSafeHwnd();
CWnd Window;
CRect rc(0, 0, 0, 0);
//CWnd* pParentWnd = (CWnd*)hWnd;
CWnd* pParentWnd = CWnd::FromHandle(hWnd);
Window.Create(0, 0, WS_BORDER,rc,pParentWnd,1000, 0);
Window.MoveWindow(50, 50,//左上角在view的(50,50)处
100, 100);//窗口的高度和宽度
}

解决方案 »

  1.   

    int CHelloView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CScrollView::OnCreate(lpCreateStruct) == -1)
    return -1;
    CRect rc(50, 50, 100, 100);
    Window.Create(0, 0, WS_CHILD | WS_BORDER,rc,this,1000, 0);
    }
      

  2.   

    int CHelloView::OnCreate(LPCREATESTRUCT lpCreateStruct) 
    {
    if (CScrollView::OnCreate(lpCreateStruct) == -1)
    return -1;
    CRect rc(50, 50, 100, 100);
    Window.Create(0, 0, WS_CHILD | WS_BORDER,rc,this,1000, 0);         Window.ShowWindow(SW_SHOW)
    }
      

  3.   

    LPCTSTR lpWndCls = AfxRegisterWndClass( 0 );
    Window.Create( lpWndCls, 0 , WS_CHILD|WS_BORDER,rc,pParentWnd,10000, 0);
      

  4.   

    LPCTSTR lpWndCls = AfxRegisterWndClass( 0 );
    Window.Create( lpWndCls, 0 , WS_CHILD|WS_BORDER|WS_CAPTION|WS_VISIBLE,rc,m_hWnd,10000, 0);
    Window.SetWindowPos( &wndNoTopMost, 0,0, 50,50, SWP_SHOWWINDOWSWP_DRAWFRAME );
    Window.SetForegroundWindow();
    如果这样还是显示不出来,就将WS_CHILD改为WS_POPUP试试
      

  5.   

    sorry!少了一个'|':
    Window.SetWindowPos( &wndNoTopMost, 0,0, 50,50, SWP_SHOWWINDOW|SWP_DRAWFRAME );
      

  6.   

    CRect rc(0, 0, 0, 0); 全是0啊,你說怎麼顯示什麼?  并不是沒有顯示, 而是顯示了你看不見, 修改參數呀
      

  7.   

    sans(sans) 还是不可以呀,老大,改成WS_POPUP不可以的,CREATE不能创建POPUP类型的窗口,再请指教!!感谢!!!
      

  8.   

    CRect rc(0, 0, 0, 0); 已经改过来了,CRect rc(50, 50, 100, 100);
      

  9.   

    HWND hWnd = GetSafeHwnd();
    CWnd Window;      //// 問題在這里呀
                               //當這個過程執行完后Window 就被析构了
                               // 你把它改為 Protected 的就行了 CRect rc(0, 0, 0, 0);
    //CWnd* pParentWnd = (CWnd*)hWnd;
    CWnd* pParentWnd = CWnd::FromHandle(hWnd);
    Window.Create(0, 0, WS_BORDER,rc,pParentWnd,1000, 0);
    Window.MoveWindow(50, 50,//左上角在view的(50,50)处
    100, 100);//窗口的高度和宽度
      

  10.   

    对了对了,关键问题是这句:
    CWnd Window;
    你将Window申明成为了一个局部变量,当OnCreate函数结束后,Window也就消亡了,故此每能够显示出来,你将CWnd Window;这句放到CHelloView的.h文件中,把Window申明成为一个成员变量就行了。
      

  11.   

    在資源的String Table 中加入ID ,再在新建時用這個ID