![]() |
|
|
![]()
|
|
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Проблема этого класса известна и описывается здесь. Предложенный способ решения прекрасно работает для однотонной заливки, но для метода SetBackgroundImage() специалисты микрософта недвусмысленно предлагают разобраться самому. Поэксперементировав с данным классом увидел, что при "подкладывании" картинки некорректно красится только Checkbox, поэтому, по аналогии с предложением создателя, родился следующий код
Совмещение фона check-кнопки с фоном диалога нормальное, но замечено следующее: при клике по кнопке мигает наполовину отрисованная фокусная рамка, затем эта рамка прорисовывается полностью и так и остаётся даже если кликнуть по другому контролу (в итоге - несколько контролов под фокусной рамкой). Если спрятать диалог и снова отобразить, данная рамка исчезает. Но это не самая большая проблема. При запуске этого творения на машине коллеги наблюдается следующая картина: после появления диалога на экране картинка нормальная, но стоит провести указателем мыши по клиентской области, как caption-ы checkbox-ов становятся жирного начертания и с малиновой подцветкой (как на расстроенном сведении лучей на кинескопе). У себя, примерного эффекта, я добился небольшим изменением размера прямоугольников в вышеприведенном коде. Вопрос такой: может я что-то делаю не так или вообще не правильно? |
|||
|
||||
| Albor |
|
|||
|
Опытный ![]() ![]() Профиль Группа: Участник Сообщений: 589 Регистрация: 28.2.2009 Репутация: 7 Всего: 9 |
Подозреваю, что это происходит из-за "двойного" рисования. То есть сначала "рисует" BitBlt, а потом рисуется фон контрола полученной кистью (может я и не прав). Переформулирую вопрос: можно ли как-то получить часть рисунка поверхности диалога для формирования патерновой кисти?
|
|||
|
||||
![]()
|
| 0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей) | |
| 0 Пользователей: | |
| « Предыдущая тема | Visual C++/MFC/WTL | Следующая тема » |
|
|
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности Powered by Invision Power Board(R) 1.3 © 2003 IPS, Inc. |