來(lái)源:互聯(lián)網(wǎng)
發(fā)表時(shí)間:2017/1/12 11:24:06
責任編輯:魯曉倩
字體:
為了幫助網(wǎng)友解決“MFC,CEdit派生類(lèi)與CreateView函數”相關(guān)的問(wèn)題,學(xué)網(wǎng)通過(guò)互聯(lián)網(wǎng)對“MFC,CEdit派生類(lèi)與CreateView函數”相關(guān)的解決方案進(jìn)行了整理,用戶(hù)詳細問(wèn)題包括:RT,我想知道:MFC,CEdit派生類(lèi)與CreateView函數,具體解決方案如下:
解決方案1:
這兩天在試驗CSplitterWnd類(lèi)分割視圖的問(wèn)題,目前是這樣一種情況,創(chuàng )建了CListView,CFormView,CEdit三個(gè)類(lèi)的派生類(lèi),派生類(lèi)分別為:CDictList,CDictPre,CDictInput,在MainFrm.h中定義了:CSplitterWnd m_wndSplitter1;重載了MainFrm的OnCreateClient函數,代碼如下:BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext){// TODO: Add your specialized code here and/or call the base classif(!m_wndSplitter1.CreateStatic(this,1,2)){return FALSE;}//請注意下面這行代碼m_wndSplitter1.CreateView(0,0,RUNTIME_CLASS(CDictInput),CSize(150,200),pContext);//9行m_wndSplitter1.CreateView(0,1,RUNTIME_CLASS(CDictPre),CSize(200,200),pContext);return TRUE;//return CFrameWnd::OnCreateClient(lpcs, pContext);}現在的問(wèn)題是,如果我在CreateView函數中,使用RUNTIME_CLASS(CDictList)、RUNTIME_CLASS(CDictPre)則能編譯運行,如將CDictInput(派生于CEdit)中,編譯則會(huì )報錯,錯誤信息為:D:\C++code\MyDict\MainFrm.cpp(120) : error C2039: 'classCDictInput' : is not a member of 'CDictInput'd:\c++code\mydict\dictinput.h(15) : see declaration of 'CDictInput'D:\C++code\MyDict\MainFrm.cpp(120) : error C2065: 'classCDictInput' : undeclared identifier請大家幫忙看看了!分少了點(diǎn),滿(mǎn)意可追加哦!
解決方案2:
classCDictInput 這個(gè)似乎是連寫(xiě)導致的報錯吧。class CDictInput中間有個(gè)空格。CDictInput沒(méi)有定義,是因為你沒(méi)有將定義它的頭文件包含到使用它的cpp文件中。有問(wèn)題可以hi我,這個(gè)很簡(jiǎn)單的問(wèn)題。你選的時(shí)候選擇CEditView作為基類(lèi)吧,CEdit類(lèi)可能不行。你把那個(gè)類(lèi)刪除掉,然后從CEditView派生一個(gè)視圖類(lèi)??赡苁沁@樣的,CreateView只能生成CView及其派生類(lèi)的視圖,其它類(lèi)是不可以的。
本站僅提供存儲服務(wù),所有內容均由用戶(hù)發(fā)布,如發(fā)現有害或侵權內容,請
點(diǎn)擊舉報。