我希望文本框的焦点始终在文本的最后,用GetSel()函数来控制焦点。
先申请一个CEdit型的变量m_RXEdit。然后在我写文本的地方加如后面两句
DWORD dwSel = m_RXEdit->GetSel();
m_RXEdit->SetSel(HIWORD(dwSel), HIWORD(dwSel)+1);
但是发现dwSel怎么读都读的是0。依然控制不到焦点。请问哪个地方控制错了?另外我可以在文本框的 change事件中加代码吧,是哪个呢,我在en_change里加的这个事件一直执行不到,谢谢。
先申请一个CEdit型的变量m_RXEdit。然后在我写文本的地方加如后面两句
DWORD dwSel = m_RXEdit->GetSel();
m_RXEdit->SetSel(HIWORD(dwSel), HIWORD(dwSel)+1);
但是发现dwSel怎么读都读的是0。依然控制不到焦点。请问哪个地方控制错了?另外我可以在文本框的 change事件中加代码吧,是哪个呢,我在en_change里加的这个事件一直执行不到,谢谢。
m_edit1.GetWindowText(strEdit);
m_edit1.SetSel(strEdit.GetLength(), strEdit.GetLength());
真的要实现你说的功能的话,可以在Edit得到焦点的时候,在OnpreTranslatemessage中屏蔽掉左右移动的按键(这是硬办法),在Edit失去焦点时取消.
m_edit1.GetWindowText(strEditText);
m_edit1.SetSel(strEditText.GetLength(), strEditText.GetLength());
m_Edit.SetWindowText(str);
m_Edit.SetSel(str.GetLength(),str.GetLength());
m_Edit.SetFocus();
UpdateWindow();