Нужен CDateTimeCtrl контрол без бордюра. Создаю его без WS_BORDER, потом проверяю spy++, стили WM_BORDER, WS_EX_CLIENTEDGE, WS_EX_WINDOWEDGE отсутствуют, а рамка рисуется. Есть ли способ избавиться от неё?
Здравствуйте, okta, Вы писали:
O>Нужен CDateTimeCtrl контрол без бордюра. Создаю его без WS_BORDER, потом проверяю spy++, стили WM_BORDER, WS_EX_CLIENTEDGE, WS_EX_WINDOWEDGE отсутствуют, а рамка рисуется. Есть ли способ избавиться от неё?
Хэк годится?
Можно создать регион, исключающий бордюр, и установить его этому контролу:
RECT r = {0};
m_DateTime.GetWindowRect(&r);
HRGN hRgn = ::CreateRectRgn(2, 2, r.right - r.left - 2, r.bottom - r.top - 2);
m_DateTime.SetWindowRgn(hRgn, TRUE);
Конечно, вместо '2' поставьте толщину бордюра.
Спасибо за ответ.
Да, думал я об этом, но до конца не хочется извращаться и не верится, что у microsoft есть такой старый глюк... или это сделано с какой-то целью?...