CEditView中调用TextOut却显示不出字来,为什么?该用什么呢?还有个问题,如何获得当前光标所在行?急~~~望各位高手指点~!不胜感激!

解决方案 »

  1.   

    在CEditView::OnPaint()中要进行重绘.
    GetCursorPos()可以得到鼠标位置,光标有点不好弄.需要计算.等待更好的.
      

  2.   

    POINT pt = pEditCtrl->GetCaretPos();
    int n = pEditCtrl->->CharFromPos(pt);
    int nLineIndex = HIWORD(n);
    int nCharIndex = LOWORD(n);
      

  3.   

    CDC::FromHandle(::GetDC(this->m_hWnd))->TextOut(xxxxxx)
      

  4.   

    CEditView中有一个Edit控件,把视窗口给挡住了,用TextOut输出当然不行了。
      

  5.   

    用OnPaint的话,若我在EditVeiw中打个字,原来TextOut的字就消失了,有办法保持吗?
      

  6.   

    有办法保存,就是要用List之类的东西保存你画过的对象。
    每次onpaint的时候再重画。
      

  7.   

    还有就是,当我将光标用SetCaretPos()定位到非左上角的某一位置时,我打第一个字,字却是从左上角出来的,能改变吗?
      

  8.   

    CharFromPos为什么在CEditView中不能调用啊,出错信息是
    D:\Edit\EditView.cpp(167) : error C2065: 'CharFromPos' : undeclared identifier
    就指示这句有误
     int n = CharFromPos( pt );
    可是在CEdit中确有CharFromPos()这个函数啊!
      

  9.   

    up一问不用回了,up的up有人知道吗?
      

  10.   

    CharFromPos是CEdit的函数,在CEditView中调用应该是:CEdit *pEditCtrl = GetEditCtrl();POINT pt = pEditCtrl->GetCaretPos();
    int n = pEditCtrl->->CharFromPos(pt);
    int nLineIndex = HIWORD(n);
    int nCharIndex = LOWORD(n);至于设置CEdit的光标,用SetCaretPos是不行的。比如设到第5个字符的位置,你可以试试用
    pEditCtrl->SetSel(5, 5);
    如果不行可以试试
    pEditCtrl->SendMessage(WM_LBUTTONDOWN, 0, MAKELPARAM(pt.x,pt.y));
    pEditCtrl->SendMessage(WM_LBUTTONUP, 0, MAKELPARAM(pt.x,pt.y));