[英]Text Selection with CRichEditCtrl in MFC
我有CRichEditCtrl对象是只读的(文本是读取,不允许修改)。 我想为使用CRichEditCtrl对象显示的文本提供带鼠标的文本选择功能。
以下代码正在努力捕获鼠标左键按钮的事件 - 向下和向上
BOOL CReportFormView::PreTranslateMessage(MSG* pMsg)
{
if (m_EditNs->GetFocus()!=NULL)
{
switch (pMsg->message)
{
case WM_LBUTTONDOWN:
return TRUE;
case WM_LBUTTONUP:
return TRUE;
}
}
}
现在寻找一些代码来写入大小写块,这将突出显示所选文本。 我想知道是否有任何可用于CRichEditCtrl对象的API有助于跟踪用户按下鼠标左键并释放的位置
你可以使用成员函数CString strText = m_myRichEditCtrl.GetSelText();
或其他一些成员函数。 像GetSel()
只是一个建议。
我想你需要使用EM_CHARFROMPOS消息。 恩。 某种形式:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.