Затык с "темезированными" контролами.
От: Cfyz  
Дата: 17.09.06 08:41
Оценка:
Предусловие: Я в этом деле новичок-с, но у меня есть MSDN.

По существу: Есть окна и контролы, динамические, создаваемые и обрабатываемые через чистое WinAPI. Т.е. никаких диалогов в ресурсных файлах, никаких MFC и прочего. HWND на HWND сидит и HWND погоняет. Есть манифест и вызов InitCommonControlsEx(...). Кнопки и ее инкарнации (checkboxes, ...) выводятся на ура. Но возьмем, например, EditBox, эта зараза выводится без бордюра. Вообще. А у нормальных приложений он есть и он, для Luna Theme, синий. Попытка проставить стиль с WS_BORDER приводит к черному бордюру, не захватывающему полосу вертикальной прокрутки текстового поля, хотя она, по идее должна быть внутри рамки. Кроме того, та самая "синяя" рамка по-нормальному рисуется с отступом в 1 пиксель от самого контрола, а у меня все впритык (текст частично пересекается с тем неправильным черным бордюром).
В WindowsForms под .NET можно даже цвет рамки поменять, а ведь WindowsForms по идее — лишь надстройка над WinAPI.

Итак, как же правильно делать "темезацию", чтоб все было "по понятиям"?
Вдогонку, каким образом можно узнать системные цвета ТЕКУЩЕЙ ТЕМЫ — цвет фона окна, цвет контрола и т.д?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.