Как программно поместить курсор в CMFCMaskedEdit в нужную позицию?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 29.03.19 11:00
Оценка:
Есть текстовое поле с маской m_IDC_EDIT1 типа CMFCMaskedEdit. Это текстовое поле предназначено для ввода даты и времени (например, такое значение

2019.03.29/13:49:12.000

).

Код установки значений для этого текстового поля:

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"____.__.__/__:__:__.___");


Мне нужно, чтобы при щелчке левой кнопки "мыши" курсор в этом текстовом поле всегда помещался на его самую первую (нулевую позицию).

Я пробовал:

void  CMyMFCMaskedEdit::OnSetFocus(CWnd *pOldWnd)
{
    SetSel(0,0);
    CMFCMaskedEdit::OnSetFocus(pOldWnd);
}


пробовал:

void  CMyMFCMaskedEdit::OnLButtonUp(UINT nFlags, CPoint point)
{
    SetSel(0,0);
    CMFCMaskedEdit::OnLButtonUp(nFlags,point);
}


и пробовал:

void  CMyMFCMaskedEdit::OnLButtonDblClk(UINT nFlags, CPoint point)
{
    SetSel(0,0);
    CMFCMaskedEdit::OnLButtonDblClk(nFlags,point);
}


однако ничего не получается--при щелчке левой кнопке "мыши" курсор в этом текстовом поле появляется на той позиции, куда я щёлкнул, а не на самой первой (нулевой) позиции.

Как мне решить эту проблему?
1613 г. = 2024 г.
Re: Как программно поместить курсор в CMFCMaskedEdit в нужную позицию?
От: RussianFellow Россия http://russianfellow.livejournal.com
Дата: 29.03.19 12:25
Оценка:
Проблема решена:

BEGIN_MESSAGE_MAP(CMyMFCMaskedEdit,CMFCMaskedEdit)
    ON_WM_LBUTTONUP()
END_MESSAGE_MAP()

void  CMyMFCMaskedEdit::OnLButtonUp(UINT nFLags, CPoint point)
{
    CMFCMaskedEdit::OnLButtonUp(nFlags,point);
    SetSel(0,0);
}
1613 г. = 2024 г.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.