Windows Mobile / Pocket PC: как изменить цвет рамки для сфокусированного / несфокусированного CEdit, CListCntl, CButton в MFC или Win32 - PullRequest
0 голосов
/ 10 июня 2009

Как изменить цвет границы для сфокусированного / несфокусированного CEdit, CListCntl, CButton в WinCE / Windows Mobile 5/6 с MFC или Win32 API?

Ответы [ 3 ]

1 голос
/ 10 июня 2009

Вы можете добиться такого эффекта, создав собственный класс CEdit и переопределив сообщение WM_NCPAINT, это позволит вам самостоятельно нарисовать не-клиентскую область и нарисовать собственную границу при изменении фокуса:

void CMyEdit::OnNcPaint() 
{
    CWindowDC dc(this);
    CRect rect;
    GetWindowRect(&rect);
    dc.Draw3dRect(0, 0, rect.Width(), rect.Height(), RGB(0,0,255) , RGB(255,0,0) );
}
0 голосов
/ 15 июня 2009

Вот этот трюк, который я нашел здесь , чтобы нарисовать элемент управления без полей, а затем нарисовать границу от его родителя. или сделать статический элемент управления немного больше, чем элемент управления, просто чтобы нарисовать границу.

Есть ли лучшая идея? такие как использование области отсечения окон или что-то?

Обновление:
Здесь - обсуждение с MSFT на тему

0 голосов
/ 10 июня 2009

Я не уверен, что вы можете без реализации пользовательского рисования.

MFC в Windows Mobile работает практически так же, как версия win32. Так что, если вы можете найти примеры того, что вам нужно, это работает в win32, скорее всего, это будет работать и под Windows Mobile.

...