Megjegyzés
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhat bejelentkezni vagy módosítani a címtárat.
Az oldalhoz való hozzáféréshez engedély szükséges. Megpróbálhatja módosítani a címtárat.
Megjegyzés:
A Microsoft Foundation Classes (MFC) könyvtár továbbra is támogatott. A továbbiakban azonban nem adunk hozzá funkciókat, és nem frissítjük a dokumentációt.
Tulajdonságlapokat, más néven tabulátor párbeszédpaneleket jelöl.
Szemantika
class CPropertySheet : public CWnd
Tagok
Nyilvános konstruktorok
| Név | Description |
|---|---|
CPropertySheet::CPropertySheet |
Egy CPropertySheet objektumot hoz létre. |
Nyilvános metódusok
| Név | Description |
|---|---|
CPropertySheet::AddPage |
Hozzáad egy lapot a tulajdonságlaphoz. |
CPropertySheet::Construct |
Egy CPropertySheet objektumot hoz létre. |
CPropertySheet::Create |
Mód nélküli tulajdonságlap megjelenítése. |
CPropertySheet::DoModal |
Modális tulajdonságlap megjelenítése. |
CPropertySheet::EnableStackedTabs |
Azt jelzi, hogy a tulajdonságlap halmozott vagy görgető lapokat használ-e. |
CPropertySheet::EndDialog |
Leállítja a tulajdonságlapot. |
CPropertySheet::GetActiveIndex |
Lekéri a tulajdonságlap aktív oldalának indexét. |
CPropertySheet::GetActivePage |
Az aktív lapobjektumot adja vissza. |
CPropertySheet::GetPage |
A megadott lapra mutató mutatót kér le. |
CPropertySheet::GetPageCount |
Lekéri a tulajdonságlap lapjainak számát. |
CPropertySheet::GetPageIndex |
Lekéri a tulajdonságlap megadott oldalának indexét. |
CPropertySheet::GetTabControl |
Egy tabulátor vezérlőelemre mutató mutatót kér le. |
CPropertySheet::MapDialogRect |
Egy téglalap párbeszédpanel-egységeit képernyőegységekké alakítja. |
CPropertySheet::OnInitDialog |
Felülbírálás a tulajdonságlap inicializálásának kiegészítéséhez. |
CPropertySheet::PressButton |
Szimulálja a megadott gomb kiválasztását egy tulajdonságlapon. |
CPropertySheet::RemovePage |
Eltávolít egy lapot a tulajdonságlapról. |
CPropertySheet::SetActivePage |
Programozott módon állítja be az aktív oldalobjektumot. |
CPropertySheet::SetFinishText |
Beállítja a Befejezés gomb szövegét. |
CPropertySheet::SetTitle |
Beállítja a tulajdonságlap feliratát. |
CPropertySheet::SetWizardButtons |
Engedélyezi a varázslógombokat. |
CPropertySheet::SetWizardMode |
Engedélyezi a varázsló üzemmódot. |
Nyilvános adatok tagjai
| Név | Description |
|---|---|
CPropertySheet::m_psh |
A Windows-struktúra PROPSHEETHEADER . Hozzáférést biztosít az alapvető tulajdonságlapparaméterekhez. |
Megjegyzések
A tulajdonságlap egy objektumból és egy CPropertySheet vagy több CPropertyPage objektumból áll. A keretrendszer egy tulajdonságlapot jelenít meg ablakként, amely lapindexek készletével és az aktuálisan kijelölt lapot tartalmazó területtel rendelkezik. A felhasználó a megfelelő lap használatával navigál egy adott lapra.
CPropertySheet támogatja a Windows 98-ban és a Windows NT 2000-ben bevezetett kibővített PROPSHEETHEADER struktúrát. A struktúra további jelzőket és tagokat tartalmaz, amelyek támogatják a "vízjel" háttérbitkép használatát.
Ha automatikusan meg szeretné jeleníteni ezeket az új képeket a tulajdonságlap objektumában, adja meg a bitkép és a palettaképek érvényes értékeit CPropertySheet::Construct a hívásban vagy CPropertySheet::CPropertySheeta .
Annak ellenére CPropertySheet , hogy nem származik belőle CDialog, az CPropertySheet objektumok kezelése olyan, mint egy CDialog objektum kezelése. Egy tulajdonságlap létrehozásához például kétrészes konstrukcióra van szükség: hívja meg a konstruktort, majd hívja meg DoModal a modális tulajdonságlapot vagy Create egy mód nélküli tulajdonságlapot.
CPropertySheet két konstruktortípusa van: CPropertySheet::Construct és CPropertySheet::CPropertySheet.
Objektum létrehozásakor CPropertySheet egyes ablakstílusok első eséllyel kivételt okozhatnak. Ez azt eredményezi, hogy a rendszer megpróbálja módosítani a tulajdonságlap stílusát a lap létrehozása előtt. A kivétel elkerülése érdekében győződjön meg arról, hogy a következő stílusokat állítja be a CPropertySheetlétrehozásakor:
DS_3DLOOKDS_CONTROLWS_CHILDWS_TABSTOP
Az alábbi stílusok nem kötelezőek, és nem okoznak első véletlen kivételt:
DS_SHELLFONTDS_LOCALEDITWS_CLIPCHILDREN
Minden más Window Styles tilos, és nem szabad engedélyezni őket.
Az adatok objektumok és külső objektumok közötti CPropertySheet cseréje hasonló az adatok objektumokkal való CDialog cseréjéhez. A fontos különbség az, hogy a tulajdonságlap beállításai általában az CPropertyPage objektumok tagváltozói, nem pedig maga az CPropertySheet objektum.
Létrehozhat egy varázsló nevű laptípust, amely egy tulajdonságlapból áll, amely a felhasználót végigvezeti egy művelet lépésein, például egy eszköz beállításán vagy hírlevél létrehozásán. A varázsló típusú lap párbeszédpanelen a tulajdonságlapok nem rendelkeznek lapfülekkel, és egyszerre csak egy tulajdonságlap látható. Az OK és az Alkalmaz most gomb helyett a varázsló típusú párbeszédpanelen a Vissza gomb, a Tovább vagy a Befejezés gomb, a Mégse gomb és a Súgó gomb látható.
Varázsló típusú párbeszédpanel létrehozásához kövesse azokat a lépéseket, amelyeket egy standard tulajdonságlap létrehozásához követne, de hívás előtt hívja SetWizardMode fel a kívánt DoModallépéseket. A varázslógombok engedélyezéséhez hívja fel SetWizardButtonsa jelölőket a funkciójuk és megjelenésük testreszabásához.
A Befejezés gomb engedélyezéséhez hívja SetFinishText fel a felhasználót, miután a varázsló utolsó lapján végrehajtotta a műveletet.
Az objektumok használatáról CPropertySheet további információt a Tulajdonságlapok és a Tulajdonságlapok című cikkben talál.
Öröklési hierarchia
CPropertySheet
Requirements
Fejléc:afxdlgs.h
CPropertySheet::AddPage
Hozzáadja a megadott lapot a tulajdonságlap jobb szélső lapjával.
void AddPage(CPropertyPage* pPage);
Paraméterek
pPage
A tulajdonságlaphoz hozzáadni kívánt lapra mutat. Nem lehet NULL.
Megjegyzések
Lapok hozzáadása a tulajdonságlaphoz a kívánt balról jobbra sorrendben.
AddPage Hozzáadja az CPropertyPage objektumot az CPropertySheet objektum laplistájához, de valójában nem hozza létre a lap ablakát. A keretrendszer elhalasztja az oldal ablakának létrehozását, amíg a felhasználó ki nem választja az adott lapot.
Ha tulajdonságlapot ad hozzá a használatávalAddPage, az CPropertySheet a szülője.CPropertyPage Ha a tulajdonságlaphoz szeretne hozzáférni a tulajdonságlapról, hívja meg a következőt CWnd::GetParent: .
A meghíváshoz AddPagenem szükséges megvárni a tulajdonságlap ablakának létrehozását. Általában a hívás vagy a hívás DoModalCreateelőtt fog hívást kezdeményezniAddPage.
Ha a tulajdonságlap megjelenítése után hív AddPage , a tabulátorsor az újonnan hozzáadott lapot fogja tükrözni.
Example
// Add three pages to a CPropertySheet object, then show the
// CPropertySheet object as a modal dialog. CStylePage, CShapePage,
// and CColorPage are CPropertyPage-derived classes created
// by the Add Class wizard.
CPropertySheet dlgPropertySheet(_T("Simple PropertySheet"));
CStylePage stylePage;
CColorPage colorPage;
CShapePage shapePage;
dlgPropertySheet.AddPage(&stylePage);
dlgPropertySheet.AddPage(&colorPage);
dlgPropertySheet.AddPage(&shapePage);
dlgPropertySheet.DoModal();
CPropertySheet::Construct
Egy CPropertySheet objektumot hoz létre.
void Construct(
UINT nIDCaption,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
void Construct(
LPCTSTR pszCaption,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
void Construct(
UINT nIDCaption,
CWnd* pParentWnd,
UINT iSelectPage,
HBITMAP hbmWatermark,
HPALETTE hpalWatermark = NULL,
HBITMAP hbmHeader = NULL);
void Construct(
LPCTSTR pszCaption,
CWnd* pParentWnd,
UINT iSelectPage,
HBITMAP hbmWatermark,
HPALETTE hpalWatermark = NULL,
HBITMAP hbmHeader = NULL);
Paraméterek
nIDCaption
A tulajdonságlaphoz használandó felirat azonosítója.
pParentWnd
Mutasson a tulajdonságlap szülőablakára. Ha NULLa szülőablak lesz az alkalmazás főablaka.
iSelectPage
Az eredetileg felül lévő lap indexe. Alapértelmezés szerint az első oldal van hozzáadva a laphoz.
pszCaption
Mutató a tulajdonságlaphoz használandó feliratot tartalmazó sztringre. Nem lehet NULL.
hbmWatermark
A tulajdonságlap vízjel bitképének kezelése.
hpalWatermark
Kezelje a vízjel bitképének és/vagy fejlécbitképének palettáját.
hbmHeader
A tulajdonságlap fejlécbitképének kezelése.
Megjegyzések
Hívja meg ezt a tagfüggvényt, ha az osztálykonstruktorok egyike még nem lett meghívva. Hívás például Construct objektumtömbök deklarálásakor vagy lefoglalásakor CPropertySheet . Tömbök esetén a tömb minden tagját meg kell hívnia Construct .
A tulajdonságlap megjelenítéséhez hívja meg vagy Create.DoModal Az első paraméterben található sztring a tulajdonságlap feliratsávjába kerül.
Automatikusan megjelenítheti a vízjel- és/vagy fejlécképeket, ha a fent felsorolt harmadik vagy negyedik prototípust Constructhasználja, és érvényes értékeket ad át a hbmWatermark, hpalWatermarkés/vagy hbmHeader paraméterek számára.
Example
Az alábbi példa bemutatja, hogy milyen körülmények között hívná meg Construct.
const int c_cSheets = 3;
CPropertySheet grpropsheet[c_cSheets];
// no need to call Construct for this next one
CPropertySheet someSheet(_T("Some sheet"));
LPTSTR rgszSheets[c_cSheets] = {
_T("Sheet 1"),
_T("Sheet 2"),
_T("Sheet 3")
};
for (int i = 0; i < c_cSheets; i++)
grpropsheet[i].Construct(rgszSheets[i]);
CPropertySheet::CPropertySheet
Egy CPropertySheet objektumot hoz létre.
CPropertySheet();
explicit CPropertySheet(
UINT nIDCaption,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
explicit CPropertySheet(
LPCTSTR pszCaption,
CWnd* pParentWnd = NULL,
UINT iSelectPage = 0);
CPropertySheet(
UINT nIDCaption,
CWnd* pParentWnd,
UINT iSelectPage,
HBITMAP hbmWatermark,
HPALETTE hpalWatermark = NULL,
HBITMAP hbmHeader = NULL);
CPropertySheet(
LPCTSTR pszCaption,
CWnd* pParentWnd,
UINT iSelectPage,
HBITMAP hbmWatermark,
HPALETTE hpalWatermark = NULL,
HBITMAP hbmHeader = NULL);
Paraméterek
nIDCaption
A tulajdonságlaphoz használandó felirat azonosítója.
pParentWnd
A tulajdonságlap szülőablakára mutat. Ha NULLa szülőablak lesz az alkalmazás főablaka.
iSelectPage
Az eredetileg felül lévő lap indexe. Alapértelmezés szerint az első oldal van hozzáadva a laphoz.
pszCaption
A tulajdonságlaphoz használandó feliratot tartalmazó sztringre mutat. Nem lehet NULL.
hbmWatermark
A tulajdonságlap háttérbitképének fogópontja.
hpalWatermark
A vízjel bitképének és/vagy fejlécbitképének palettájához tartozó fogópont.
hbmHeader
A tulajdonságlap fejlécbitképének leírója.
Megjegyzések
A tulajdonságlap megjelenítéséhez hívja meg vagy Create.DoModal Az első paraméterben található sztring a tulajdonságlap feliratsávjába kerül.
Ha több paraméterrel rendelkezik (például tömb használata esetén), használja Construct ahelyett CPropertySheet, hogy .
Automatikusan megjelenítheti a vízjel- és/vagy fejlécképeket, ha a fenti harmadik vagy negyedik prototípust CPropertySheethasználja, és érvényes értékeket ad át a hbmWatermark, hpalWatermarkés/vagy hbmHeader paraméterek számára.
Example
// Declare a CPropertySheet object titled "Simple PropertySheet".
CPropertySheet dlgPropertySheet1(_T("Simple PropertySheet"));
// Declare a CPropertySheet object whose title is specified in the
// IDS_PROPERTYSHEET_TITLE string resource, and the second page is
// initially on top.
CPropertySheet dlgPropertySheet2(IDS_PROPERTYSHEET_TITLE, this, 1);
CPropertySheet::Create
Mód nélküli tulajdonságlap megjelenítése.
virtual BOOL Create(CWnd* pParentWnd = NULL,
DWORD dwStyle = (DWORD)-1,
DWORD dwExStyle = 0);
Paraméterek
pParentWnd
Rámutat a szülőablakra. Ha NULL, akkor a szülő az asztal.
dwStyle
A tulajdonságlap ablakstílusai. Az elérhető stílusok teljes listáját az Ablakstílusok című témakörben találja.
dwExStyle
Bővített ablakstílusok a tulajdonságlaphoz. Az elérhető stílusok teljes listáját a Bővített ablakstílusok című témakörben találja.
Visszaadott érték
Nem, ha a tulajdonságlap sikeresen létrejött; egyéb esetben 0.
Megjegyzések
A hívás Create lehet a konstruktoron belül, vagy meghívhatja a konstruktor meghívása után.
Az alapértelmezett stílus, amely a -1 a következőképpen dwStylevan kifejezve , valójában WS_SYSMENU|WS_POPUP|WS_CAPTION|DS_MODALFRAME|DS_CONTEXTHELP|WS_VISIBLE. Az alapértelmezett kiterjesztett ablakstílus, amely a 0 dwExStyleas értéket adja meg, valójában WS_EX_DLGMODALFRAME.
A Create tagfüggvény a tulajdonságlap létrehozása után azonnal visszatér. A tulajdonságlap megsemmisítéséhez hívja meg a következőt CWnd::DestroyWindow: .
A mód nélküli tulajdonságlapok az OK, a Mégse, az Alkalmaz most és a Súgó gombokkal Create nem rendelkeznek, ahogyan a modális tulajdonságlapok teszik. A kívánt gombokat a felhasználónak kell létrehoznia.
A modális tulajdonságlap megjelenítéséhez hívja DoModal meg inkább.
Example
// This code fragment shows how to create a modeless property sheet
// dialog in a command message handler (OnModelessPropertySheet())
// of a CView-derived class.
void CPSheetView::OnModelessPropertySheet()
{
// Declare a CPropertySheet object. m_pdlgPropertySheet is a data
// member of type CPropertySheet in CView-derived class.
m_pdlgPropertySheet = new CPropertySheet(_T("Simple PropertySheet"));
ASSERT(m_pdlgPropertySheet);
// Add three pages to the CPropertySheet object. Both m_pstylePage,
// m_pcolorPage, and m_pshapePage are data members of type
// CPropertyPage-derived classes in CView-derived class.
m_pstylePage = new CStylePage;
m_pcolorPage = new CColorPage;
m_pshapePage = new CShapePage;
m_pdlgPropertySheet->AddPage(m_pstylePage);
m_pdlgPropertySheet->AddPage(m_pcolorPage);
m_pdlgPropertySheet->AddPage(m_pshapePage);
// Create a modeless CPropertySheet dialog.
m_pdlgPropertySheet->Create();
}
// The code fragment below shows how to destroy the C++ objects for
// propertysheet and propertypage in the destructor of CView-derived
// class.
// NOTE: DestroyWindow() is called in CPropertySheet::OnClose() so
// you do not need to call it here. Property pages are children
// of the CPropertySheet, they will be destroyed by their parents.
CPSheetView::~CPSheetView()
{
delete m_pshapePage;
delete m_pstylePage;
delete m_pcolorPage;
delete m_pdlgPropertySheet;
}
CPropertySheet::DoModal
Modális tulajdonságlap megjelenítése.
virtual INT_PTR DoModal();
Visszaadott érték
IDOK vagy IDCANCEL ha a függvény sikeres volt; ellenkező esetben 0 vagy -1. Ha a tulajdonságlap varázslóként lett létrehozva (lásd), SetWizardModeDoModal akkor a függvény vagy ID_WIZFINISHIDCANCELa .
Megjegyzések
A visszatérési érték a tulajdonságlapot lezáró vezérlőelem azonosítójának felel meg. A függvény visszatérése után a tulajdonságlapnak és az összes lapnak megfelelő ablakok megsemmisülnek. Maguk az objektumok továbbra is léteznek. Az IDOK visszaadása után DoModal általában adatokat fog lekérni az CPropertyPage objektumokból.
A mód nélküli tulajdonságlap megjelenítéséhez hívja meg a kívánt Create tulajdonságot.
Ha egy tulajdonságlap a megfelelő párbeszédpanel-erőforrásból jön létre, az első véletlen kivételt okozhat. Ez azt eredményezi, hogy a tulajdonságlap a párbeszédpanel-erőforrás stílusát a kívánt stílusra módosítja a lap létrehozása előtt. Mivel az erőforrások általában írásvédettek, ez kivételt okoz. A rendszer kezeli a kivételt, és másolatot készít a módosított erőforrásról. Az első véletlen kivétel ezért figyelmen kívül hagyható.
Megjegyzés:
Ezt a kivételt az operációs rendszernek kell kezelnie, ha az aszinkron kivételkezelési modellel foglalkozik. A kivételkezelési modellekről további információt a (Kivételkezelési modell) című témakörben talál/EH. Ebben az esetben ne csomagolja be a CPropertySheet::DoModal hívásokat olyan C++ try-catch blokktal, amelyben a fogás kezeli az összes kivételt, például catch (...). Ez a blokk kezeli az operációs rendszerre vonatkozó kivételt, és kiszámíthatatlan viselkedést okoz. A C++ kivételkezelést azonban biztonságosan használhatja bizonyos kivételtípusokkal vagy strukturált kivételkezeléssel, ha a hozzáférés-megsértési kivételt az operációs rendszernek továbbítja.
Az első véletlen kivétel létrehozásának elkerülése érdekében manuálisan garantálhatja, hogy a tulajdonságlapon a megfelelő ablakstílusok vannak. Egy tulajdonságlaphoz a következő stílusokat kell beállítania:
DS_3DLOOKDS_CONTROLWS_CHILDWS_TABSTOP
A következő választható stílusokat használhatja, anélkül, hogy első eséllyel kivételt okoz:
DS_SHELLFONTDS_LOCALEDITWS_CLIPCHILDREN
Tiltsa le az összes többi Windows-stílust, mert nem kompatibilisek a tulajdonságlapokkal. Ez a tanács nem vonatkozik a kiterjesztett stílusokra. Ezeknek a standard stílusoknak a megfelelő beállítása garantálja, hogy a tulajdonságlapot nem kell módosítani, és elkerüli az első véletlen kivétel létrehozását.
Example
Lásd a példát a CPropertySheet::AddPage.
CPropertySheet::EnableStackedTabs
Azt jelzi, hogy sorokat kell-e halmoznia egy tulajdonságlapon.
void EnableStackedTabs(BOOL bStacked);
Paraméterek
bStacked
Azt jelzi, hogy a halmozott lapok engedélyezve vannak-e a tulajdonságlapon. Tiltsa le a halmozott címkék sorait a következő beállítással bStackedFALSE: .
Megjegyzések
Ha egy tulajdonságlapnak alapértelmezés szerint több lapja van, mint amennyi a tulajdonságlap szélességének egyetlen sorában elfér, a lapok több sorban halmozva jelennek meg. Ha görgető lapokat szeretne használni a tabulátorok halmozása helyett, hívja EnableStackedTabs meg a bStacked be van állítva FALSE a hívás vagy a hívás DoModalCreateelőtt.
Modális vagy mód nélküli tulajdonságlap létrehozásakor hívnia EnableStackedTabs kell. Ha ezt a stílust egy CPropertySheet-származtatott osztályba szeretné beépíteni, írjon egy üzenetkezelőt a következőhöz WM_CREATE: . A parancs felülírt verziójában hívja meg EnableStackedTabs( FALSE ) az alaposztály implementációjátCWnd::OnCreate.
Example
int CMyPropertySheet::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
// Set for Scrolling Tabs style
EnableStackedTabs(FALSE);
// Call the base class
if (CPropertySheet::OnCreate(lpCreateStruct) == -1)
return -1;
return 0;
}
CPropertySheet::EndDialog
Leállítja a tulajdonságlapot.
void EndDialog(int nEndID);
Paraméterek
nEndID
A tulajdonságlap visszatérési értékeként használandó azonosító.
Megjegyzések
Ezt a tagfüggvényt a keretrendszer hívja meg az OK, a Mégse vagy a Bezárás gomb lenyomásakor. Hívja meg ezt a tagfüggvényt, ha olyan esemény történik, amelynek be kell zárnia a tulajdonságlapot.
Ez a tagfüggvény csak modális párbeszédpanellel használható.
Example
Lásd a példát a CPropertySheet::PressButton.
CPropertySheet::GetActiveIndex
Lekéri a tulajdonságlap ablakának aktív lapjának indexszámát, majd a visszaadott indexszámot használja paraméterként GetPage.
int GetActiveIndex() const;
Visszaadott érték
Az aktív oldal indexszáma.
Example
Lásd a példát a CPropertySheet::GetActivePage.
CPropertySheet::GetActivePage
Lekéri a tulajdonságlap ablakának aktív lapját.
CPropertyPage* GetActivePage() const;
Visszaadott érték
Az aktív lapra mutató mutató.
Megjegyzések
Ezzel a tagfüggvénysel műveletet hajthat végre az aktív oldalon.
Example
// The code fragment below sets the last active page (i.e. the
// active page when the propertysheet was closed) to be the first
// visible page when the propertysheet is shown. The last active
// page was saved in m_LastActivePage, (a member variable of
// CDocument-derived class) when OK was selected from the
// propertysheet. CMyPropertySheet is a CPropertySheet-derived class.
BOOL CMyPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
CMDIFrameWnd* pframe = (CMDIFrameWnd*)AfxGetMainWnd();
CMDIChildWnd* pchild = pframe->MDIGetActive();
CPSheetDoc* doc = (CPSheetDoc*)pchild->GetActiveDocument();
SetActivePage(doc->m_LastActivePage);
return bResult;
}
BOOL CMyPropertySheet::OnCommand(WPARAM wParam, LPARAM lParam)
{
if (LOWORD(wParam) == IDOK)
{
CMDIFrameWnd* pframe = (CMDIFrameWnd*)AfxGetMainWnd();
CMDIChildWnd* pchild = pframe->MDIGetActive();
CPSheetDoc* doc = (CPSheetDoc*)pchild->GetActiveDocument();
doc->m_LastActivePage = GetPageIndex(GetActivePage()); // or GetActiveIndex()
}
return CPropertySheet::OnCommand(wParam, lParam);
}
CPropertySheet::GetPage
A tulajdonságlap megadott lapjára mutató mutatót ad vissza.
CPropertyPage* GetPage(int nPage) const;
Paraméterek
nPage
A kívánt oldal indexe 0-tól kezdve. A tulajdonságlap oldalainak száma 0 és 1 közötti lehet, beleértve azokat is.
Visszaadott érték
A paraméternek nPage megfelelő lapra mutató mutató.
Example
Lásd a példát a CPropertyPage::OnWizardFinish.
CPropertySheet::GetPageCount
A tulajdonságlapon jelenleg található lapok számát határozza meg.
int GetPageCount() const;
Visszaadott érték
A tulajdonságlap lapjainak száma.
Example
Lásd a példát a CPropertyPage::OnWizardFinish.
CPropertySheet::GetPageIndex
A tulajdonságlapon a megadott oldal indexszámát kéri le.
int GetPageIndex(CPropertyPage* pPage);
Paraméterek
pPage
A megtalálandó indexet tartalmazó lapra mutat. Nem lehet NULL.
Visszaadott érték
Egy oldal indexszáma.
Megjegyzések
Használhatja például GetPageIndex a lapindexet a használathoz SetActivePage vagy GetPagea .
Example
Lásd a példát a CPropertySheet::GetActivePage.
CPropertySheet::GetTabControl
Egy tabulátor vezérlőelemre mutató mutatót kér le, amely a tabulátor vezérlőelemre jellemző műveletet hajtja végre (azaz a lap bármely API-jának CTabCtrlhasználatát).
CTabCtrl* GetTabControl() const;
Visszaadott érték
Egy tabulátor vezérlőelemre mutató mutató.
Megjegyzések
Hívja meg például ezt a tagfüggvényt, ha bitképeket szeretne hozzáadni az egyes lapokhoz az inicializálás során.
Example
// Create and associate a tooltip control to the tab control of
// CMyTTPropertySheet. CMyTTPropertySheet is a CPropertySheet-derived
// class.
BOOL CMyTTPropertySheet::OnInitDialog()
{
BOOL bResult = CPropertySheet::OnInitDialog();
// Create a tooltip control. m_pToolTipCtrl is a member variable
// of type CToolTipCtrl* in CMyTTPropertySheet class. It is
// initialized to NULL in the constructor, and destroyed in the
// destructor of CMyTTPropertySheet class.
m_pToolTipCtrl = new CToolTipCtrl;
if (!m_pToolTipCtrl->Create(this))
{
TRACE(_T("Unable To create ToolTip\n"));
return bResult;
}
// Associate the tooltip control to the tab control
// of CMyPropertySheet.
CTabCtrl* ptab = GetTabControl();
ptab->SetToolTips(m_pToolTipCtrl);
// Get the bounding rectangle of each tab in the tab control of the
// property sheet. Use this rectangle when registering a tool with
// the tool tip control. IDS_FIRST_TOOLTIP is the first ID string
// resource that contains the text for the tool.
int count = ptab->GetItemCount();
int id = IDS_FIRST_TOOLTIP;
for (int i = 0; i < count; i++)
{
CRect r;
ptab->GetItemRect(i, &r);
VERIFY(m_pToolTipCtrl->AddTool(ptab, id, &r, id));
id++;
}
// Activate the tooltip control.
m_pToolTipCtrl->Activate(TRUE);
return bResult;
}
// Override PreTranslateMessage() so RelayEvent() can be
// called to pass a mouse message to CMyTTPropertySheet's
// tooltip control for processing.
BOOL CMyTTPropertySheet::PreTranslateMessage(MSG* pMsg)
{
if (NULL != m_pToolTipCtrl)
m_pToolTipCtrl->RelayEvent(pMsg);
return CPropertySheet::PreTranslateMessage(pMsg);
}
CPropertySheet::m_psh
Olyan struktúra, amelynek tagjai a PROPSHEETHEADER.
Megjegyzések
Ezzel a struktúrával inicializálhatja a tulajdonságlap megjelenését a felépítése után, de mielőtt megjelenítené a DoModal tagfüggvényben. Állítsa például a dwSize tagot m_psh arra a méretre, amelyet a tulajdonságlapnak meg szeretne adni.
Erről a struktúráról, beleértve a tagok listáját is, a Windows SDK-ban talál PROPSHEETHEADER további információt.
Example
// This code fragment shows how to change CPropertySheet's settings
// before it is shown. After the changes, CPropertySheet has the
// caption "Simple Properties", no "Apply" button, and the
// second page (CColorPage) initially on top.
CPropertySheet dlgPropertySheet(_T("Simple PropertySheet"));
CStylePage stylePage;
CColorPage colorPage;
CShapePage shapePage;
dlgPropertySheet.AddPage(&stylePage);
dlgPropertySheet.AddPage(&colorPage);
dlgPropertySheet.AddPage(&shapePage);
dlgPropertySheet.m_psh.dwFlags |= PSH_NOAPPLYNOW | PSH_PROPTITLE;
dlgPropertySheet.m_psh.pszCaption = _T("Simple");
dlgPropertySheet.m_psh.nStartPage = 1;
dlgPropertySheet.DoModal();
CPropertySheet::MapDialogRect
Egy téglalap párbeszédpanel-egységeit képernyőegységekké alakítja.
void MapDialogRect(LPRECT lpRect) const;
Paraméterek
lpRect
Olyan struktúrára RECT vagy CRect objektumra mutat, amely tartalmazza a konvertálni kívánt párbeszédpanel-koordinátákat.
Megjegyzések
A párbeszédpanel-egységek a párbeszédpanel szövegéhez használt betűtípus karaktereinek átlagos szélességéből és magasságából származtatott jelenlegi párbeszédpanel-alapegységben vannak megosztva. Egy vízszintes egység a párbeszédpanel alapszélesség-mértékegységének egynegyede, egy függőleges egység pedig a párbeszédpanel alapmagasság-egységének egynyolcada.
A GetDialogBaseUnits Windows függvény a rendszer betűtípusának méretadatait adja vissza, de ha az erőforrásdefiníciós fájlban a DS_SETFONT stílust használja, minden tulajdonságlaphoz megadhat egy másik betűtípust. A MapDialogRect Windows SDK-ban leírt Windows-függvény ehhez a párbeszédpanelhez a megfelelő betűtípust használja.
A MapDialogRect tagfüggvény a párbeszédpanel-egységeket lpRect képernyőegységekre (képpontokra) cseréli, hogy a téglalap segítségével párbeszédpanelt hozzon létre, vagy egy vezérlőelemet helyezzen el egy dobozon belül.
CPropertySheet::OnInitDialog
Felülbírálások a tulajdonságlap inicializálásának kiegészítéséhez.
virtual BOOL OnInitDialog();
Visszaadott érték
Megadja, hogy az alkalmazás beállította-e a bemeneti fókuszt a tulajdonságlap egyik vezérlőelemére. Ha OnInitDialog nemero értéket ad vissza, a Windows a bemeneti fókuszt a tulajdonságlap első vezérlőelemére állítja. Az alkalmazás csak akkor tud 0 értéket visszaadni, ha explicit módon állította be a bemeneti fókuszt a tulajdonságlap egyik vezérlőelemére.
Megjegyzések
A rendszer meghívja ezt a tagfüggvényt az WM_INITDIALOG üzenetre válaszul. Ezt az üzenetet a rendszer a tulajdonságlapra küldi a Create hívások során DoModal , amelyek közvetlenül a tulajdonságlap megjelenítése előtt történnek.
Bírálja felül ezt a tagfüggvényt, ha speciális feldolgozást kell végrehajtania a tulajdonságlap inicializálásakor. A felülírt verzióban először hívja meg az alaposztályt OnInitDialog , de hagyja figyelmen kívül a visszatérési értékét. Általában a felülírt tagfüggvényből fog visszatérni TRUE .
Ehhez a tagfüggvényhez nincs szükség üzenettérkép-bejegyzésre.
CPropertySheet::PressButton
Szimulálja a megadott gomb kiválasztását egy tulajdonságlapon.
void PressButton(int nButton);
Paraméterek
nButton
nButton : Azonosítja a lenyomandó gombot. Ez a paraméter a következő értékek egyike lehet:
PSBTN_BACKA Vissza gombot választja.PSBTN_NEXTA Tovább gombot választja.PSBTN_FINISHA Befejezés gombot választja.PSBTN_OKAz OK gombot választja.PSBTN_APPLYNOWAz Alkalmaz most gombot választja.PSBTN_CANCELA Mégse gombot választja.PSBTN_HELPA Súgó gombot választja.
Megjegyzések
További PSM_PRESSBUTTON információ a Windows SDK Pressbutton üzenetről.
A meghívás PressButton nem küldi el az értesítést egy PSN_APPLY tulajdonságlapról a keretrendszernek. Az értesítés elküldéséhez hívja fel a () parancsot CPropertyPage::OnOK.
Example
// Simulate the selection of OK and Cancel buttons when Alt+K and
// Alt+C are pressed. CMyPropertySheet is a CPropertySheet-derived
// class.
BOOL CMyPropertySheet::PreTranslateMessage(MSG* pMsg)
{
if (pMsg->message >= WM_KEYFIRST && pMsg->message <= WM_KEYLAST)
{
BOOL altkey = GetKeyState(VK_MENU) < 0;
if (altkey)
{
BOOL handled = TRUE;
switch (toupper((int)pMsg->wParam))
{
case 'C': // for Alt+C - Cancel button
PressButton(PSBTN_CANCEL); // or EndDialog(IDCANCEL);
break;
case 'K': // for Alt+K - OK button
PressButton(PSBTN_OK); // or EndDialog(IDOK);
break;
default:
handled = FALSE;
}
if (handled)
return TRUE;
}
}
return CPropertySheet::PreTranslateMessage(pMsg);
}
CPropertySheet::RemovePage
Eltávolít egy lapot a tulajdonságlapról, és megsemmisíti a társított ablakot.
void RemovePage(CPropertyPage* pPage);
void RemovePage(int nPage);
Paraméterek
pPage
A tulajdonságlapról eltávolítandó lapra mutat. Nem lehet NULL.
nPage
Az eltávolítandó lap indexe. A tulajdonságlap oldalainak száma 0 és 1 közötti lehet, beleértve azokat is.
Megjegyzések
Maga CPropertyPage az objektum nem semmisül meg, amíg az CPropertySheet ablak tulajdonosa be nem záródik.
CPropertySheet::SetActivePage
Módosítja az aktív lapot.
BOOL SetActivePage(int nPage);
BOOL SetActivePage(CPropertyPage* pPage);
Paraméterek
nPage
A beállítani kívánt oldal indexe. 0 és 1 közötti értéknek kell lennie a tulajdonságlap oldalainak számánál, beleértve azokat is.
pPage
A tulajdonságlapon beállított lapra mutat. Nem lehet NULL.
Visszaadott érték
Nonzero, ha a tulajdonságlap sikeresen aktiválva van; egyéb esetben 0.
Megjegyzések
Használja például, SetActivePage ha egy felhasználó művelete az egyik oldalon egy másik lap aktív lapjává válik.
Example
Lásd a példát a CPropertySheet::GetActivePage.
CPropertySheet::SetFinishText
A Befejezés parancsgomb szövegének beállítása.
void SetFinishText(LPCTSTR lpszText);
Paraméterek
lpszText
A Befejezés parancsgombon megjelenítendő szövegre mutat.
Megjegyzések
Hívja meg SetFinishText a szöveget a Befejezés parancsgombon, és rejtse el a Tovább és a Vissza gombot, miután a felhasználó befejezte a műveletet a varázsló utolsó lapján.
Example
// CShapePage is the last wizard property page. Enable the Back
// button and change the Next button to Finish. The "Finish" button
// will have "Done" as its caption.
BOOL CShapePage::OnSetActive()
{
CPropertySheet* psheet = (CPropertySheet*)GetParent();
psheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);
psheet->SetFinishText(_T("Done"));
return CPropertyPage::OnSetActive();
}
CPropertySheet::SetTitle
Megadja a tulajdonságlap feliratát (a keretablak címsorában megjelenő szöveget).
void SetTitle(
LPCTSTR lpszText,
UINT nStyle = 0);
Paraméterek
nStyle
A tulajdonságlap címének stílusát adja meg. A stílust 0 vagy as PSH_PROPTITLEértéken kell megadni. Ha a stílus be van állítva PSH_PROPTITLE, a "Tulajdonságok" szó a feliratként megadott szöveg után jelenik meg. A ("Simple", PSH_PROPTITLE) meghívás SetTitlepéldául az "Egyszerű tulajdonságok" tulajdonságlap-feliratot eredményez.
lpszText
A tulajdonságlap címsorában feliratként használandó szövegre mutat.
Megjegyzések
A tulajdonságlap alapértelmezés szerint a tulajdonságlap konstruktorában lévő feliratparamétert használja.
Example
// Declare a CPropertySheet object with a caption "Simple PropertySheet".
CPropertySheet dlgPropertySheet(_T("Simple PropertySheet"));
// Add three pages to the CPropertySheet object. CStylePage, CColorPage,
// and CShapePage are CPropertyPage-derived classes created
// by the Add Class wizard.
CStylePage stylePage;
CColorPage colorPage;
CShapePage shapePage;
dlgPropertySheet.AddPage(&stylePage);
dlgPropertySheet.AddPage(&colorPage);
dlgPropertySheet.AddPage(&shapePage);
// Change the caption of the CPropertySheet object
// from "Simple PropertySheet" to "Simple Properties".
dlgPropertySheet.SetTitle(_T("Simple"), PSH_PROPTITLE);
// Show the CPropertySheet object as MODAL.
dlgPropertySheet.DoModal();
CPropertySheet::SetWizardButtons
Engedélyezi vagy letiltja a Vissza, a Tovább vagy a Befejezés gombot egy varázsló tulajdonságlapján.
void SetWizardButtons(DWORD dwFlags);
Paraméterek
dwFlags
A varázslógombok funkcióját és megjelenését testre szabó jelzők készlete. Ez a paraméter a következő értékek kombinációja lehet:
PSWIZB_BACKVissza gombPSWIZB_NEXTTovább gombPSWIZB_FINISHBefejezés gombPSWIZB_DISABLEDFINISHLetiltott befejezés gomb
Megjegyzések
Hívás SetWizardButtons csak a párbeszédpanel megnyitása után, hívás előtt DoModalnem hívhatóSetWizardButtons. Általában a következőből CPropertyPage::OnSetActivekell hívniaSetWizardButtons: .
Ha módosítani szeretné a Befejezés gomb szövegét, vagy el szeretné rejteni a Tovább és a Vissza gombot, miután a felhasználó befejezte a varázslót, hívja a következőt SetFinishText. Vegye figyelembe, hogy ugyanez a gomb meg van osztva a Befejezés és a Tovább gombra vonatkozóan. Egyszerre megjelenítheti a Befejezés vagy a Tovább gombot, de mindkettőt nem.
Example
Az A CPropertySheet három varázslótulajdonság-oldallal rendelkezik: CStylePage, CColorPageés CShapePage. Az alábbi kódrészlet bemutatja, hogyan engedélyezheti és tilthatja le a Vissza és a Következő gombot a varázsló tulajdonságlapján.
// CStylePage is the first wizard property page. Disable the Back
// button but enable the Next button.
BOOL CStylePage::OnSetActive()
{
CPropertySheet* psheet = (CPropertySheet*) GetParent();
psheet->SetWizardButtons(PSWIZB_NEXT);
return CPropertyPage::OnSetActive();
}
// CColorPage is the second wizard property page. Enable both the
// Back button and the Next button.
BOOL CColorPage::OnSetActive()
{
CPropertySheet* psheet = (CPropertySheet*)GetParent();
psheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_NEXT);
return CPropertyPage::OnSetActive();
}
// CShapePage is the last wizard property page. Enable the Back
// button and change the Next button to Finish. The "Finish" button
// will have "Done" as its caption.
BOOL CShapePage::OnSetActive()
{
CPropertySheet* psheet = (CPropertySheet*)GetParent();
psheet->SetWizardButtons(PSWIZB_BACK | PSWIZB_FINISH);
psheet->SetFinishText(_T("Done"));
return CPropertyPage::OnSetActive();
}
CPropertySheet::SetWizardMode
Létrehoz egy tulajdonságlapot varázslóként.
void SetWizardMode();
Megjegyzések
A varázsló tulajdonságlapjának egyik fő jellemzője, hogy a felhasználó tabulátorok helyett a Tovább vagy a Befejezés, a Vissza és a Mégse gombokkal navigál.
Hívás SetWizardMode a hívás DoModalelőtt. A hívás SetWizardModeDoModal után a rendszer vagy (ID_WIZFINISHha a felhasználó bezárul a Befejezés gombbal) vagy IDCANCEL.
SetWizardMode jelölőt PSH_WIZARD állít be.
Example
CPropertySheet sheet(_T("Simple PropertySheet"));
CStylePage pageStyle;
CColorPage pageColor;
CShapePage pageShape;
sheet.AddPage(&pageStyle);
sheet.AddPage(&pageColor);
sheet.AddPage(&pageShape);
sheet.SetWizardMode();
sheet.DoModal();
Lásd még
MFC-minta CMNCTRL1
MFC-minta CMNCTRL2
MFC-minta PROPDLG
MFC-minta SNAPVW
CWnd osztály
hierarchiadiagram