Центр Группа Box

0

Я создаю свое первое приложение в Visual C++, и для жизни я не могу понять, чтобы групповой ящик автоматически центрировался, когда окно максимизировано. Сейчас групповой пакет будет выравниваться только слева. Как бы я его сосредоточил?

Теги:
visual-c++
visual-studio-2010

2 ответа

1
Лучший ответ

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

  • 0
    @ Джонатан Поттер, спасибо за информацию. Я новичок в Visual C ++, поэтому мне придется прочитать о WM_SIZE и о том, что он делает.
0

Примечание. Я предполагаю, что вы используете Visual С++ для Windows Forms.

Вам придется вручную выровнять его, отрегулировав свойства Left и Top вашего элемента управления. Вы можете переопределить событие Resize формы, чтобы оно срабатывало при манипулировании размером формы. Затем вы можете использовать ширину и высоту формы для правильного позиционирования вашего центра в центре:

void myForm_Resize(System::Object^ sender, System::EventArgs^ e)
{
    myControl->Left = (myForm->Width - myControl->Width) / 2;
    myControl->Top = (myForm->Height - myControl->Height) / 2;
}
  • 0
    @ ruslander, я попробовал твое предложение, но оно дало некоторые ошибки. Я поработаю с кодом и посмотрю, смогу ли я заставить его работать и вернуться.
  • 0
    Не стесняйтесь сообщать о некоторых ошибках / исключениях, и я могу попытаться помочь диагностировать.

Ещё вопросы

Сообщество Overcoder
Наверх
Меню