Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > Visual C++/MFC/WTL > GetRichEditCtrl()


Автор: GetProcAddress 6.5.2013, 08:01
Подскажите что происходит? В классе вида две функции, в обоих CRichEditCtrl& rCtrl=GetRichEditCtrl();: 

Код

void CDisasmView::OnUpdate(CView* /*pSender*/, LPARAM /*lHint*/, CObject* /*pHint*/)
{
    DWORD Eip;
    EIP=new TCHAR[16];
    CRichEditCtrl& rCtrl=GetRichEditCtrl();  //<----------------------------------
    rCtrl.GetDefaultCharFormat(cf);
    lstrcpy(cf.szFaceName,_T("Lucida Sans Unicode"));
    cf.cbSize=sizeof(CHARFORMAT);
    rCtrl.SetDefaultCharFormat(cf);
    rCtrl.SetWindowTextW(disasm);
    rCtrl.SetFocus();
    Eip=Context.Eip;
    wsprintf(EIP,_T("%.8X:"),Eip);
    Position=FindText(EIP,TRUE,TRUE,TRUE);
    ::PostMessage(rCtrl.m_hWnd,EM_LINESCROLL,0,15);
    delete []EIP;
}

long CDisasmView::GetLine()
{
    long a;
    CRichEditCtrl& rCtrl=GetRichEditCtrl();//<----------------------------------
    a=pCtrl-> LineFromChar(-1);
    return a;
}



в первом случае все нормально, во второй функции компилятор выдает:

Код

error C2352: CRichEditView::GetRichEditCtrl: недопустимый вызов нестатической функции-члена
см. объявление 'CRichEditView::GetRichEditCtrl'

Автор: Earnest 6.5.2013, 12:42
Может, вторая ф-я у тебя объявлена как статическая? Именно так ругается компилятор на подобное.

Автор: GetProcAddress 6.5.2013, 15:01
Да, действительно статическая, если убрать, перестает ругаться, спасибо.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)