Групповое поле с заголовком как флажок - PullRequest
6 голосов
/ 26 июня 2009

Я использую Visual Studio 6.0 (VC ++ с MFC) на платформе Windows XP. Я пытаюсь создать групповой блок с заголовком группового блока в качестве флажка. Мое намерение заключается в следующем: если флажок включен, элементы управления внутри группы должны быть включены; или отключен.

Возможно ли это сделать? Если да, пожалуйста, дайте мне несколько указаний.

Спасибо.

Ответы [ 3 ]

5 голосов
/ 26 июня 2009

Есть несколько вещей, которые вы можете попробовать, в зависимости от того, насколько вы верны своей идее и сколько работы вы готовы приложить к усилию:

Простой метод

Используйте обычный групповой блок, а затем внутри него сделайте первый элемент флажком. Это просто сделать, но вы теряете цель иметь флажок в качестве заголовка.

Прикольный метод рисования 1

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

Прикольный метод рисования 2

Используйте некоторую форму суперкласса или подкласса / подкласса на групповом поле. Вы можете переопределить обработчик WM_PAINT, чтобы рисовать только рамку для группового блока. Поставьте обычный флажок в том месте, где вы знаете, название должно идти. Это должно работать лучше, потому что у вас будет больше контроля над чертежом, но, скорее всего, будет сложно разобраться в этом. По моему опыту, создание подклассов менее рискованно для реализации, чем суперклассирование.

4 голосов
/ 27 июня 2009

Вы используете редактор диалогов? Если это так, отложите групповое поле. Затем, поверх этого, поставьте флажок над линией группового поля. Отредактируйте ресурс, чтобы установить порядок Z, или сделайте это в коде. Вы хотите, чтобы флажок был в верхней части окна группы. Добавьте обработчик для флажка и включите / отключите элементы управления в зависимости от состояния флажка.

1 голос
/ 17 марта 2010

Несколько лет назад я написал книгу под названием CGroupCheck, и она доступна в CodeProject: http://www.codeproject.com/KB/buttons/groupcheck123.aspx

...