H
Ich werde es hier posten - damit die anderen auch etwas davon haben:
.h
CPropertySheet m_Sheet;
CPageA m_PageA;
CPageB m_PageB;
int m_nPageCount = 2;
Jetzt kommt ein größere Funkion.
In der werden die Pages dem Sheet hinzugefügt.
Das Sheet wird erstellt und die Icons werden gesetzt.
.cpp
void CDBMoreInfo::CreateAndInitProperty()
{
int i=0;
//Hier wird das PropertySheet initialisiert
m_Sheet.AddPage(&m_PageA);
m_Sheet.AddPage(&m_PageB);
//Bilder formatieren und einfügen...
HICON ico;
m_imageSheet.Create(16, 16, ILC_MASK | ILC_COLOR32, m_nPageCount, 4);
ico = AfxGetApp()->LoadIcon(IDI_PAGEA);
m_imageSheet.Add(ico);
ico = AfxGetApp()->LoadIcon(IDI_PAGEB);
//Property sheet erstellen...
m_Sheet.Create(this, WS_CHILD | WS_VISIBLE, 0);
m_Sheet.ModifyStyleEx (0, WS_EX_CONTROLPARENT);
m_Sheet.ModifyStyle( 0, WS_TABSTOP );
CRect rcSheet;
GetDlgItem(IDC_SHEET)->GetWindowRect(&rcSheet);
ScreenToClient(&rcSheet);
m_Sheet.SetWindowPos(NULL, rcSheet.left, rcSheet.top, rcSheet.right, rcSheet.bottom,
SWP_NOZORDER | SWP_NOACTIVATE);
//Bilder setzen
m_Sheet.GetTabControl()->SetImageList(&m_imageSheet);
TC_ITEM tcItem;
tcItem.mask = TCIF_IMAGE;
for(i=1; i<=m_nPageCount; i++) {
tcItem.iImage = i-1;
m_Sheet.GetTabControl()->SetItem(i-1, &tcItem);
}
m_Sheet.GetTabControl()->MoveWindow(0,0, rcSheet.Width(), rcSheet.Height());
// Jetzt rufen wir alle Pages auf.
// So wird OnInitDialog aufgerufen.
for(i = 0; i < m_nPageCount; i++) {
m_Sheet.SetActivePage(i);
}
m_Sheet.SetActivePage(0);
}