Оптимальный способ создания шестиугольных кнопок в шестиугольной сетке

Я работаю над инструментом, который генерирует сетку шестиугольников, на которую пользователь может нажимать, чтобы циклически переходить через определенные состояния (враг, союзник и т. д.). До сих пор я мог генерировать гексы как полигоны.

Я новичок в программировании для Windows и Win32 API. Я знаю, как создать обычную кнопку, но как лучше всего справиться с тем, что мне нужно?

На ум приходят следующие варианты:

  1. Сделайте псевдокнопки шестигранника. Как хранить состояния шестнадцатеричных объектов и просто рисовать текст на каждом гексе, когда пользователь нажимает на них.
  2. Создайте кнопки в форме шестиугольника, используя CreateWindow. Я нашел несколько примеров создания кнопок разной формы, но сам не пробовал.
  3. Создайте файлы изображений для циклического просмотра.

Каков правильный способ сделать это? Под правильным я подразумеваю лучшую практику.


person inzombiak    schedule 25.09.2014    source источник


Ответы (1)


Если вы уже рисуете шестиугольники (похоже, что вы рисуете), то создание кнопок в форме шестиугольника на самом деле не очень вам поможет. Вы можете самостоятельно провести тестирование нажатия, чтобы определить, какая псевдокнопка была нажата. Это позволяет избежать того, чтобы Windows управляла многими небольшими объектами, о которых у вас уже есть полные данные. И рисовать текст на этих кнопках будет как минимум так же быстро, как и Windows.

person ScottMcP-MVP    schedule 25.09.2014