首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在MFC中使用CRichEditCtrl进行文本选择

在MFC中使用CRichEditCtrl进行文本选择
EN

Stack Overflow用户
提问于 2015-02-20 15:11:09
回答 2查看 664关注 0票数 0

我有CRichEditCtrl对象,它是只读的(文本是用于读取的,不允许修改)。我想提供与CRichEditCtrl对象显示的文本与鼠标选择文本的功能。

以下代码用于捕获鼠标左键按下和按下事件

代码语言:javascript
复制
BOOL CReportFormView::PreTranslateMessage(MSG* pMsg) 
{
    if (m_EditNs->GetFocus()!=NULL) 
    {
        switch (pMsg->message)
        {
            case WM_LBUTTONDOWN:
                return TRUE;
            case WM_LBUTTONUP:
                return TRUE;
        }
    }
}

现在寻找一些代码来写在case块,这将突出显示选定的文本。我想知道是否有可用于CRichEditCtrl对象的API,可以帮助跟踪用户按下鼠标左键并释放的位置

EN

回答 2

Stack Overflow用户

发布于 2015-02-20 16:04:38

您可以使用成员函数CString strText = m_myRichEditCtrl.GetSelText();或其他一些成员函数。像GetSel()只是一个建议。

票数 0
EN

Stack Overflow用户

发布于 2015-02-20 21:58:06

我认为您需要使用EM_CHARFROMPOS消息。例如。这是某种形式的:

代码语言:javascript
复制
POINTL pt { x,y }; // ... screen coordinates to test relative to edit 
DWORD info = m_EditNS->SendMessage(EM_CHARFROMPOS, 0, pt);
int charIndex = LOWORD(info);
int line = HIWORD(info);

之后,用普通的选择方法设置选择。

https://msdn.microsoft.com/en-us/library/windows/desktop/bb761566(v=vs.85).aspx

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28623445

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档