^_^ TY 2019-03-28 15:54 采纳率: 0%
浏览 197

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

在捕获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条回答 默认 最新

    报告相同问题?

    悬赏问题

    • ¥15 cgictest.cgi文件无法访问
    • ¥20 删除和修改功能无法调用
    • ¥15 kafka topic 所有分副本数修改
    • ¥15 小程序中fit格式等运动数据文件怎样实现可视化?(包含心率信息))
    • ¥15 如何利用mmdetection3d中的get_flops.py文件计算fcos3d方法的flops?
    • ¥40 串口调试助手打开串口后,keil5的代码就停止了
    • ¥15 电脑最近经常蓝屏,求大家看看哪的问题
    • ¥60 高价有偿求java辅导。工程量较大,价格你定,联系确定辅导后将采纳你的答案。希望能给出完整详细代码,并能解释回答我关于代码的疑问疑问,代码要求如下,联系我会发文档
    • ¥50 C++五子棋AI程序编写
    • ¥30 求安卓设备利用一个typeC接口,同时实现向pc一边投屏一边上传数据的解决方案。