CEdit的派生类的OnLButtonDbClk()中,用SetSel()想高亮显示选中行,无效???? 哪里有问题呢? 谢谢
1. 动态创建CMyEdit控件的代码:
pEdit = new CMyEdit;
pEdit->Create(WS_CHILD|WS_VISIBLE|WS_TABSTOP|ES_MULTILINE
|WS_VSCROLL,
CRect(10,10,100,100), this, 1);
pEdit->ModifyStyleEx(0, WS_EX_CLIENTEDGE, SWP_DRAWFRAME);
2. CMyEdit中被继承的函数
void CMyEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
int iStart, iEnd;
CString m_sSelectedText, m_sEditText;
GetSel(iStart, iEnd);
GetWindowText(m_sEditText);
//get begin and end position of selected line (between two '\n')
int iLeft = m_sEditText.ReverseFind('\n');
int iRight = iLeft;
CString remainStr = m_sEditText.Left(iLeft);
while ( iLeft>iStart )
{
iRight = iLeft-1;
iLeft = remainStr.ReverseFind('\n');
remainStr = remainStr.Left(iLeft-1);
}
//set selected for current line
SetFocus();
SetSel(iLeft+1,iRight-iLeft-1); //这里无效,没有高亮显示整行。
//get text of selected line
m_sSelectedText = m_sEditText.Mid(iLeft+1,iRight-iLeft-1);//这里得到了整行的内容
CEdit::OnLButtonDblClk(nFlags, point);
}
???
谢谢