qq_37815205
^_^ TY
2019-03-28 15:54

[求助]MFC的CRichEditView视图,将Tab键产生的空格修改为两个空格出错了

  • c++
  • c语言

在捕获tab按键消息时修改执行,获取光标位置,在该位置按Tab时输出两个空格,当前位置后移两位出错

if ((VK_TAB == pMsg->wParam) && (WM_KEYDOWN == pMsg->message) && (pMsg->hwnd == GetSafeHwnd()))
    {
        CString strContent;//视图内容
        long lBegin = 0;
        long lEnd = 0;
        GetRichEditCtrl().GetSel(lBegin, lEnd); //当前光标位置
        GetRichEditCtrl().GetWindowText(strContent);
        if (lBegin != lEnd)
        {
            strContent = strContent.Left(lBegin) + strContent.Mid(lEnd);
        }
        strContent.Insert(lBegin, "  ");
        GetRichEditCtrl().SetWindowText(strContent);
        GetRichEditCtrl().SetSel(lBegin + 2, lBegin + 2);
        return TRUE;
    }

执行结果:
图片说明
在6前面回车,然后再按Tab就变成下图情况了
图片说明

  • 点赞
  • 回答
  • 收藏
  • 复制链接分享

0条回答