Как программно изменить порядок вкладок в диалоге Win32? - PullRequest
11 голосов
/ 08 сентября 2008

Часто мне нужно добавить элемент управления в диалог после того, как диалог был сгенерирован с помощью шаблона диалога и CreateDialogIndirect. В этих случаях порядок вкладок задается шаблоном диалога, и нет очевидного способа изменить порядок вкладок путем включения вновь созданного элемента управления.

Ответы [ 2 ]

14 голосов
/ 08 сентября 2008

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

SetWindowPos(hNewControl, hOldControl, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE); 

Это изменяет z-порядок элементов управления, который, в свою очередь, устанавливает порядок табуляции.

0 голосов
/ 11 июля 2011

Я знаю, что это старый вопрос, но вот как это сделать во время компиляции (что предпочтительно в подавляющем большинстве случаев): http://msdn.microsoft.com/en-us/library/7039hzb0(v=vs.80).aspx

Мой любимый метод:

  1. В меню «Вид» выберите «Порядок табуляции».
  2. Выберите Назначить интерактивно.
  3. Дважды щелкните по полю порядка вкладок рядом с элементом управления, которым вы хотите быть первый элемент управления в порядке табуляции.
  4. Щелкните поле порядка вкладок для каждого из других элементов управления.
  5. Нажмите в любом месте формы, чтобы сохранить изменения и выйти из Tab Order. или нажмите ESC для выхода из режима табуляции без сохранения меняется.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...