Вопрос

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

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

Спасибо.

Это было полезно?

Решение

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

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

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

Необычный метод рисования 1

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

Необычный метод рисования 2

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

Другие советы

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

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

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top