Re: Change Property Sheet Size?
Thanks, AliR and Joe
After reading the last 2 posts. I first tried using CTabCtrl,(never
used CTabCtrl, I have always use PropertySheet for tabs :). Create
myPages and then resize them then create controls, It works, need some
minus tuning thought. Then it occur to me why I must put my create
controls code inside the OnInitDialog? I should put it in a seperate
function and and explicit call this function after I resize the
property sheet and property page. It works beautifully.
Something like this: (added code is between ####)
CPropertySheet* m_pMainTabs;
CPropertyPage* m_pMyPage1;
CPropertyPage* m_pMyPage2;
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
//resize window to maximum screen size
CSize screenSize;
screenSize.cx = ::GetSystemMetrics(SM_CXSCREEN);
screenSize.cy = ::GetSystemMetrics(SM_CYSCREEN);
MoveWindow(0,0, screenSize.cx, screenSize.cy);
//Resize PropertySheet before add pages
CRect rcDlg, rcSheet;
GetWindowRect(&rcDlg);
m_pMainTabs->AddPage(m_pMyPage1);
m_pMainTabs->AddPage(m_pMyPage2);
// Now "initialize" the property sheet window.
if(!m_pMainTabs->Create(this, WS_CHILD | WS_VISIBLE)){
delete m_pMainTabs;
m_pMainTabs = NULL;
return;
}
m_pMainTabs->ModifyStyleEx (0, WS_EX_CONTROLPARENT);
m_pMainTabs->ModifyStyle( 0, WS_TABSTOP );
m_pMainTabs->SetWindowPos(NULL, rcDlg.left, rcDlg.top,
rcDlg.Width(),
rcDlg.Height(),
SWP_NOZORDER | SWP_NOACTIVATE );
m_pMainTabs->GetWindowRect(&rcSheet);
ScreenToClient(&rcSheet);
m_pMainTabs->GetTabControl()->SetWindowPos( NULL,
rcSheet.left,
rcSheet.top, rcSheet.Width(), rcSheet.Height(),
SWP_NOZORDER | SWP_NOACTIVATE );
###########################
m_pMyPage1->SetWindowPos( NULL, rcSheet.left, rcSheet.top,
rcSheet.Width(), rcSheet.Height(),
SWP_NOZORDER | SWP_NOACTIVATE );
m_pMyPage2->SetWindowPos( NULL, rcSheet.left, rcSheet.top,
rcSheet.Width(), rcSheet.Height(),
SWP_NOZORDER | SWP_NOACTIVATE );
m_pMyPage1->InitControls();
m_pMyPage2->InitControls();
############################
m_pMainTabs->SetActivePage(m_pMyPage1);
Again ,thanks guys.
-rockdale