Megosztás a következőn keresztül:


CPropertySheet osztály

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_3DLOOK

  • DS_CONTROL

  • WS_CHILD

  • WS_TABSTOP

Az alábbi stílusok nem kötelezőek, és nem okoznak első véletlen kivételt:

  • DS_SHELLFONT

  • DS_LOCALEDIT

  • WS_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

CObject

CCmdTarget

CWnd

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_3DLOOK

  • DS_CONTROL

  • WS_CHILD

  • WS_TABSTOP

A következő választható stílusokat használhatja, anélkül, hogy első eséllyel kivételt okoz:

  • DS_SHELLFONT

  • DS_LOCALEDIT

  • WS_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_BACK A Vissza gombot választja.

  • PSBTN_NEXT A Tovább gombot választja.

  • PSBTN_FINISH A Befejezés gombot választja.

  • PSBTN_OK Az OK gombot választja.

  • PSBTN_APPLYNOW Az Alkalmaz most gombot választja.

  • PSBTN_CANCEL A Mégse gombot választja.

  • PSBTN_HELP A 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_BACK Vissza gomb

  • PSWIZB_NEXT Tovább gomb

  • PSWIZB_FINISH Befejezés gomb

  • PSWIZB_DISABLEDFINISH Letiltott 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