Растянуть PropertyPage
От: STING  
Дата: 19.08.04 15:56
Оценка:
Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.
Re: Растянуть PropertyPage
От: rus blood Россия  
Дата: 19.08.04 16:32
Оценка:
Здравствуйте, STING, Вы писали:

STI>Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.


ShowWindow работает для top-level окон.
Используй SetWindowPos.
Имею скафандр — готов путешествовать!
Re[2]: Растянуть PropertyPage
От: STING  
Дата: 19.08.04 16:37
Оценка:
Здравствуйте, rus blood, Вы писали:

RB>Здравствуйте, STING, Вы писали:


STI>>Как растянуть PropertySheet на весь экран ясно(ShowWindow(SW_MAXIMIZE)), но при этом PropertyPage не растягиваются, а занимают лишь часть PropertySheet, равную своему размеру. Как можно растянуть PropertyPage? ShowWindow(SW_MAXIMIZE) — не помогло.


RB>ShowWindow работает для top-level окон.

RB>Используй SetWindowPos.
Да, но тогда мне нужно как-то узнать размеры PropertySheet???
Re[3]: Растянуть PropertyPage
От: rus blood Россия  
Дата: 19.08.04 16:53
Оценка:
Здравствуйте, STING, Вы писали:

STI>Да, но тогда мне нужно как-то узнать размеры PropertySheet???


Узнать размеры клиентской части окна — GetClientRect.
Имею скафандр — готов путешествовать!
Re[4]: Растянуть PropertyPage
От: STING  
Дата: 19.08.04 17:27
Оценка:
Здравствуйте, 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 оказывается пустым.
Re[5]: Растянуть PropertyPage
От: rus blood Россия  
Дата: 19.08.04 17:29
Оценка:
Здравствуйте, STING, Вы писали:

Непонятно. При чем здесь OnActivate ?
Ловить надо сообщение WM_SIZE для sheet-а.
И клиентские координаты брать каждый раз в обработчике, а не запоминать их.
Имею скафандр — готов путешествовать!
Re[6]: Растянуть PropertyPage
От: STING  
Дата: 19.08.04 17:56
Оценка:
Здравствуйте, 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);
}
Re[7]: Растянуть PropertyPage
От: STING  
Дата: 19.08.04 18:57
Оценка:
Извиняюсь, в предыдущем посте не то вставил. У меня не получается получит указать на PropertyPage...
Re[8]: Растянуть PropertyPage
От: STING  
Дата: 19.08.04 18:59
Оценка:
То есть получить указатель на PropertyPage.
Re[7]: Растянуть PropertyPage
От: rus blood Россия  
Дата: 20.08.04 07:58
Оценка:
Здравствуйте, STING, Вы писали:

STI>Теперь не получается получить указатель на PropertyPage


CPropertySheet::GetPage
Имею скафандр — готов путешествовать!
Re[8]: Растянуть PropertyPage
От: STING  
Дата: 20.08.04 09:06
Оценка:
Хм... указатель получаю, норазмер изменить не получается возникают ошибки.
void CMainSheet::OnSize(UINT nType, int cx, int cy)
{
CRect m_SheetRect;
GetClientRect(&m_SheetRect);

CPropertyPage* pMode1 = (CPropertyPage*) GetPage(0);
CPropertyPage* pMode2 = (CPropertyPage*) GetPage(1);
CPropertyPage* pMode3 = (CPropertyPage*) GetPage(2);
CPropertyPage* pMode4 = (CPropertyPage*) GetPage(3);
CPropertyPage* pMode5 = (CPropertyPage*) GetPage(4);

if (pMode1)
{
pMode1->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}

if (pMode2)
{
pMode2->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}

if (pMode3)
{
pMode3->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}

if (pMode4)
{
pMode4->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}

if (pMode5)
{
pMode5->SetWindowPos(NULL, NULL, NULL, m_SheetRect.right, m_SheetRect.bottom, 0);
}
}
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.