Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.
Здравствуйте, STING, Вы писали:
STI>Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.
ShowWindow работает для top-level окон.
Используй SetWindowPos.
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, STING, Вы писали:
STI>>Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.
RB>ShowWindow работает для top-level окон. RB>Используй SetWindowPos.
Да, но тогда мне нужно как-то узнать размеры PropertySheet???
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, STING, Вы писали:
STI>>Да, но тогда мне нужно как-то узнать размеры PropertySheet???
RB>Узнать размеры клиентской части окна — GetClientRect.
Ставлю в OnActivate()
SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0); — помогает.
Дело в том, что PropertySheet у меня главное окно, размеры клиентской области я получаю в MyApp::InitInstance(), и если SetWindowPos вызвать в PropertyPage::OnInitDialog, то m_SheetRect оказывается пустым.
Непонятно. При чем здесь OnActivate ?
Ловить надо сообщение WM_SIZE для sheet-а.
И клиентские координаты брать каждый раз в обработчике, а не запоминать их.
Здравствуйте, rus blood, Вы писали:
RB>Здравствуйте, STING, Вы писали:
RB>Непонятно. При чем здесь OnActivate ? RB>Ловить надо сообщение WM_SIZE для sheet-а. RB>И клиентские координаты брать каждый раз в обработчике, а не запоминать их.
Теперь не получается получить указатель на PropertyPage
CMode1* mod1 = (CMode1*) GetDlgItem(IDD_MODE1);
if (mod1)
{
GetClientRect(&m_SheetRect); mod1->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}
Хм... указатель получаю, норазмер изменить не получается возникают ошибки.
void CMainSheet::OnSize(UINT nType, int cx, int cy)
{
CRect m_SheetRect;
GetClientRect(&m_SheetRect);