ширина раскрывающейся стрелки

3

Итак, в winforms у каждого выпадающего списка есть эта маленькая стрелочка справа, которая сообщает пользователю о выпадающем списке, вроде этого:

http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif http://www.ci.berkeley.ca.us/ig_common/images/igsch_dropdown_up_o2003silver.gif

Теперь, как мне понять, насколько широка эта цифра? Причина в том, что я использую ControlDrawToBitmap, это неправильно рисует текст для полей со списком, и я могу перерисовать содержимое, я просто ударяю некоторые из стрелок (которые рисуются правильно).

  • 0
    Эта стрелка полностью отличается в стиле Aero. Я не могу расшифровать вашу причину.
Теги:
winforms

2 ответа

5
Лучший ответ

Первая идея, которая приходит на ум: проверьте, соответствует ли ширина кнопки со списком ширины полосы прокрутки. Ширина полосы прокрутки может быть изменена в пользовательских настройках. Используйте API GetSystemMetrics(), чтобы получить ширину различных элементов прокрутки. Если вы измените ширину полосы прокрутки вашей системы и не повлияет на размер обычной выпадающей надписи, тогда проигнорируйте это.

Вторая идея: используйте форматирование управления редактированием, чтобы узнать, что думает элемент управления редактирования, является полезной областью отображения (минус поле со списком). См. EM_GETRECT в MSDN.

Однако, похоже, что это всего лишь обходное решение для вашей реальной проблемы: если вы можете заставить элементы управления правильно рисовать растровые изображения, вам не понадобится этот хакер.

0

Я вычислил ширину 9 пикселей в фотошопе

Ещё вопросы

Сообщество Overcoder
Наверх
Меню