Vytvoření nemodálního seznamu vlastností
Za normálních okolností budou seznamy vlastností, které vytvoříte, modální. Při použití modálního seznamu vlastností musí uživatel před použitím jakékoli jiné části aplikace zavřít seznam vlastností. Tento článek popisuje metody, které můžete použít k vytvoření seznamu vlastností bez režimu, který umožňuje uživateli ponechat seznam vlastností otevřený při používání jiných částí aplikace.
Chcete-li zobrazit seznam vlastností jako bezmodální dialogové okno namísto modálního dialogového okna, zavolejte CPropertySheet::Create místo DoModal. Musíte také implementovat některé další úlohy pro podporu bezmodální seznam vlastností.
Jedním z dalších úkolů je výměna dat mezi seznamem vlastností a externím objektem, který upravuje při otevření seznamu vlastností. To je obecně stejný úkol jako u standardních bezmodální dialogových oken. Součástí této úlohy je implementace kanálu komunikace mezi seznamem bez moderovaných vlastností a externím objektem, na který platí nastavení vlastnosti. Tato implementace je mnohem jednodušší, pokud odvozujete třídu z CPropertySheet pro váš bezmodální seznam vlastností. Tento článek předpokládá, že jste to udělali.
Jednou z metod komunikace mezi seznamem vlastností bez režimu a externím objektem (například aktuální výběr v zobrazení) je definovat ukazatel z seznamu vlastností na externí objekt. Definujte funkci (označovanou jako ) SetMyExternalObject
v CPropertySheet
odvozené třídě, která změní ukazatel vždy, když se fokus změní z jednoho externího objektu na jiný. Funkce SetMyExternalObject
musí obnovit nastavení pro každou stránku vlastností, aby odrážela nově vybraný externí objekt. K tomu SetMyExternalObject
musí být funkce schopná získat přístup k objektům CPropertyPage patřícím do CPropertySheet
třídy.
Nejpohodlnější způsob, jak poskytnout přístup k stránkám vlastností v seznamu vlastností, je vložit CPropertyPage
objekty do odvozeného objektu CPropertySheet
. CPropertyPage
Vkládání objektů do CPropertySheet
-odvozeného objektu se liší od typického návrhu modálních dialogových oken, kde vlastník seznamu vlastností vytvoří CPropertyPage
objekty a předá je do seznamu vlastností prostřednictvím CPropertySheet::AddPage.
Existuje mnoho alternativ uživatelského rozhraní pro určení, kdy se má nastavení seznamu vlastností bez režimu použít u externího objektu. Jednou z možností je použít nastavení aktuální stránky vlastností vždy, když uživatel změní libovolnou hodnotu. Další alternativou je poskytnutí tlačítka Použít, které uživateli umožňuje shromáždit změny na stránkách vlastností před jejich potvrzením do externího objektu. Informace o způsobech zpracování tlačítka Použít najdete v článku Zpracování tlačítka Použít.
Viz také
Seznamy vlastností
Výměna dat
Práce s dialogovými okny v prostředí MFC