Все ли состояния BP_CHECKBOX гарантированно имеют одинаковый размер, и если нет, то как мне обрабатывать различия в размерах при рисовании и тестировании попаданий?
Мой пользовательский элемент управления Table рисует свои собственные флажки и обрабатывает свои собственные события флажков. Прямо сейчас, когда я вычисляю размер тематического флажка (с GetThemePartSize()
) Я уверен, что все состояния имеют одинаковый размер, паникуя, если один отличается. Проверять все состояния каждый раз нецелесообразно, если я собираюсь изменить размеры флажков на лету (передавая HDC
), и это похоже на то время, когда я могу действовать более надежно, чем паниковать (тем более, что я все равно реструктурирую весь код моего элемента управления).
Можно ли предположить, что все тематические состояния флажков имеют одинаковый размер? И если нет, то как мне обрабатывать различия в размерах для целей рисования: всегда ли я использую самый большой размер, и если да, то где я рисую флажки меньшего размера относительно самого большого размера, или я делаю что-то еще? И для тестирования на удар: всегда ли я считаю самый большой размер?
Старый документ "Windows XP Visual Guidelines" предполагает, что все они должны быть одинакового размера, но это ничего не гарантирует для будущих версий Windows (и я не знаю аналогичных документов для будущих версий Windows). Я не вижу ничего другого в MSDN или в заголовочных файлах.
Я специально говорю об этом здесь; Я не знаю о флажках без терминов (сейчас я просто использую маленький размер иконки для всех состояний, но я уверен, что есть лучший способ получить размер, о котором я не знаю...).
Благодарю.