Есть текстовое поле с маской 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 г.
Проблема решена:
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 г.