Версия для печати
Нажмите сюда для просмотра этой темы в оригинальном формате |
Форум на Исходниках.RU > Visual C++ / MFC / WTL > Как программно поместить курсор в CMFCMaskedEdit в нужную позицию? |
Автор: erslgoeirjh 29.03.19, 11:03 |
Есть текстовое поле с маской m_IDC_EDIT1 типа CMFCMaskedEdit. Это текстовое поле предназначено для ввода даты и времени (например, такое значение Цитата ).2019.03.29/13:49:12.000 Код установки значений для этого текстового поля: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> m_IDC_EDIT1.EnableMask(_T("dddd dd dd dd dd dd ddd"),_T("____.__.__/__:__:__.___"),_T('_')); m_IDC_EDIT1.SetValidChars(_T("0123456789")); m_IDC_EDIT1.SetWindowText(L"____.__.__/__:__:__.___"); Мне нужно, чтобы при щелчке левой кнопки "мыши" курсор в этом текстовом поле всегда помещался на его самую первую (нулевую позицию). Я пробовал: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> void CMyMFCMaskedEdit::OnSetFocus(CWnd *pOldWnd) { SetSel(0,0); CMFCMaskedEdit::OnSetFocus(pOldWnd); } пробовал: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> void CMyMFCMaskedEdit::OnLButtonUp(UINT nFlags, CPoint point) { SetSel(0,0); CMFCMaskedEdit::OnLButtonUp(nFlags,point); } и пробовал: <{CODE_COLLAPSE_OFF}><{CODE_WRAP_OFF}> void CMyMFCMaskedEdit::OnLButtonDblClk(UINT nFlags, CPoint point) { SetSel(0,0); CMFCMaskedEdit::OnLButtonDblClk(nFlags,point); } однако ничего не получается--при щелчке левой кнопке "мыши" курсор в этом текстовом поле появляется на той позиции, куда я щёлкнул, а не на самой первой (нулевой) позиции. Как мне решить эту проблему? |
Автор: Олег М 29.03.19, 12:06 |
Сначала вызвать CMFCMaskedEdit::OnLButtonUp, потом SetSel(0,0); Или вообще не вызывать CMFCMaskedEdit::OnLButtonUp |