CRect rc; GetClientRect(&rc);
         CRect rc;
GetClientRect(rc);
我如果写在BOOL CJflcView::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
无论写成那一种都会报错而如果写在
BOOL CChildFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
中两种写法都能够通过,这是为什么啊??

解决方案 »

  1.   

    View的Create函数执行时View还没有创建好。
      

  2.   

    这个是我的代码,应该怎么修改啊??
    我就是想在窗体创建的时候能够创建一个表格啊,下午我的程序都还可以的,晚上不知道怎么搞的就不行了啊BOOL CChildFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
    {
    // TODO: Add your specialized code here and/or call the base class

    // TODO: Add your specialized code here and/or call the base class
    CRect rc;
    // GetClientRect(&rc);
    rc.DeflateRect(1,1);
    if (!m_flatTabCtrl.Create(WS_CHILD|WS_VISIBLE|FTS_XT_BOTTOM|FTS_XT_HASHOMEEND|FTS_XT_HSCROLL,
    rc, this, IDC_FLATTABCTRL_STATIONCARS_VIEW))
    {
    TRACE0( "Failed to create flattab control\n" );
    return -1;
    }
    m_GridBoard.Create(CRect(0,0,0,0),&m_flatTabCtrl,ID_STATIONCARS_BOARD_GRID,WS_CHILD| WS_BORDER | WS_TABSTOP);
    //插入页面
    m_flatTabCtrl.InsertItem(0,"毛玻璃显示",&m_GridBoard);
    InitBoardGrid(); //初始化表格
    //设置父窗口,用于消息返回
    // m_GridBoard.SetMessageParent(this);
    return CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);

    }
      

  3.   

    CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd, nID, pContext);
    CRect rc;
    GetClientRect(&rc);
    rc.DeflateRect(1,1);
    ...
    CWnd::Create放最前面执行,
      

  4.   

    BOOL CChildFrame::Create(LPCTSTR lpszClassName, LPCTSTR lpszWindowName, DWORD dwStyle, const RECT& rect, CWnd* pParentWnd, UINT nID, CCreateContext* pContext) 
    {
    BOOL bResult =  CWnd::Create(lpszClassName, lpszWindowName, dwStyle, rect, pParentWnd,   nID, pContext);
             if (!bResult)  return FALSE;
                // TODO: Add your specialized code here and/or call the base class

    // TODO: Add your specialized code here and/or call the base class
    CRect rc;
    // GetClientRect(&rc);
    rc.DeflateRect(1,1);
    if (!m_flatTabCtrl.Create(WS_CHILD|WS_VISIBLE|FTS_XT_BOTTOM|FTS_XT_HASHOMEEND|FTS_XT_HSCROLL,
    rc, this, IDC_FLATTABCTRL_STATIONCARS_VIEW))
    {
    TRACE0( "Failed to create flattab control\n" );
    return -1;
    }
    m_GridBoard.Create(CRect(0,0,0,0),&m_flatTabCtrl,ID_STATIONCARS_BOARD_GRID,WS_CHILD| WS_BORDER | WS_TABSTOP);
    //插入页面
    m_flatTabCtrl.InsertItem(0,"毛玻璃显示",&m_GridBoard);
    InitBoardGrid(); //初始化表格
    //设置父窗口,用于消息返回
    // m_GridBoard.SetMessageParent(this);         return TRUE;

    }
      

  5.   

    按照楼上各位兄弟的指导,没有问题了,可以创建出来CELL单元格,但是没有一个格子能够修改的啊是不是还有什么属性要修改的啊 LockWindowUpdate();
    m_GridBoard.SetColumnCount(100);
    m_GridBoard.SetRowCount(100);
    m_GridBoard.SetFixedRowCount(100);
    m_GridBoard.SetFixedColumnCount(100);
    m_GridBoard.SetEditable(TRUE);
    m_GridBoard.SetUseNormalCursor(TRUE);
    m_GridBoard.SetAllowHotCopy(TRUE);
    m_GridBoard.SetUseTheFirstRowData(TRUE);
    m_GridBoard.SetUseXPStyle(TRUE);
    m_GridBoard.SetEditOnFocus(TRUE);
    m_GridBoard.SetAllowTitleTips(TRUE);
    m_GridBoard.m_eSelectModes=CGridCtrl::SELECT_NOTHING;
    m_GridBoard.SetAllowHotCopy(TRUE);
    m_GridBoard.SetAllowPopMenu(TRUE);
    // m_GridBoard.SetRowHeight(0,GRID_HEIGHT);
    m_GridBoard.SetRowResize(TRUE);
    m_GridBoard.SetColumnResize(TRUE);
    m_GridBoard.EnableDragAndDrop(TRUE);
    // m_GridBoard.SetIsShowSelBackColor(FALSE);
    m_GridBoard.SetIsShowFocusCellBackColorAsSelBackColor(TRUE);// m_ImageList.Create( IDB_BITMAP_LOCOMOTIVE, 42, 1, RGB(255,0,255) );
    // m_GridBoard.SetImageList(&m_ImageList);  //读取股道信息
    // m_arrayGdDesc.RemoveAll();
    // CAdoRsValues rsvGdml;
    // _IF_DB_ERROR_EXIT(tcAfxData.m_adoDBConn.OpenAdoRsValues("SELECT * FROM Tcs_Gdml  ORDER BY GdOrder",&rsvGdml));
    // m_GridBoard.SetColumnCount(rsvGdml.GetRecordCount()+1);
    m_GridBoard.SetItemText(0,0,"顺位");
    int nRow=0 ,nCol=1;
    GV_ITEM Item;
    for (nCol = 0; nCol<m_GridBoard.GetColumnCount(); nCol++)

    Item.mask = GVIF_TEXT|GVIF_FORMAT;
    Item.row = 0;
    Item.col = nCol;
    Item.nFormat = DT_CENTER|DT_VCENTER|DT_WORDBREAK|DT_SINGLELINE|DT_END_ELLIPSIS;
    Item.szText=m_GridBoard.GetItemText(0,nCol);
    LOGFONT* pLF = m_GridBoard.GetItemFont(0 ,nCol);
    if (pLF)        
    {
    LOGFONT lf;
    memcpy(&lf, pLF, sizeof(LOGFONT));
    lf.lfWidth=0;
    lf.lfHeight=-12;
    lf.lfWeight=700;
    lf.lfItalic = (BYTE) FALSE;
    strcpy((char *)lf.lfFaceName,"宋体");
    m_GridBoard.SetItemFont(0, nCol, &lf);
    }
    m_GridBoard.SetItem(&Item);
    }
    m_GridBoard.AutoSizeColumn(0);
    for(nCol=1; nCol<m_GridBoard.GetColumnCount(); nCol++)
    m_GridBoard.SetColumnWidth(nCol,100);
    UnlockWindowUpdate();
    m_GridBoard.Invalidate();这是我设置的代码,还有什么地方不对的啊