CDataExchange – třída
Podporuje rutiny výměny dat dialogového okna (DDX) a ověřování dat dialogového okna (DDV) používané třídami Microsoft Foundation.
Syntax
class CDataExchange
Členové
Veřejné konstruktory
Název | Description |
---|---|
CDataExchange::CDataExchange | CDataExchange Vytvoří objekt. |
Veřejné metody
Název | Description |
---|---|
CDataExchange::Fail | Volá se, když se ověření nezdaří. Obnoví fokus na předchozí ovládací prvek a vyvolá výjimku. |
CDataExchange::P repareCtrl | Připraví zadaný ovládací prvek pro výměnu dat nebo ověření. Použijte pro ovládací prvky nonedit. |
CDataExchange::P repareEditCtrl | Připraví zadaný ovládací prvek pro úpravy pro výměnu nebo ověření dat. |
CDataExchange::P repareOleCtrl | Připraví zadaný ovládací prvek OLE pro výměnu dat nebo ověření. Použijte pro ovládací prvky nonedit. |
Veřejné datové členy
Název | Description |
---|---|
CDataExchange::m_bSaveAndValidate | Příznak pro směr DDX a DDV. |
CDataExchange::m_pDlgWnd | Dialogové okno nebo okno, ve kterém probíhá výměna dat. |
Poznámky
CDataExchange
nemá základní třídu.
Tuto třídu použijte, pokud píšete rutiny výměny dat pro vlastní datové typy nebo ovládací prvky nebo pokud píšete vlastní rutiny ověřování dat. Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématu Výměna a ověřování dat dialogových oken a dialogová okna.
Objekt CDataExchange
poskytuje kontextové informace potřebné k provedení DDX a DDV. Příznak m_bSaveAndValidate má hodnotu FALSE, pokud se DDX používá k vyplnění počátečních hodnot ovládacích prvků dialogového okna z datových členů. Příznak m_bSaveAndValidate má hodnotu TRUE, pokud se DDX používá k nastavení aktuálních hodnot ovládacích prvků dialogového okna do datových členů a když se K ověření hodnot dat používá DDV. Pokud ověření DDV selže, zobrazí se v proceduře DDV okno se zprávou s vysvětlením chyby vstupu. Procedura DDV pak zavolá Fail
k resetování fokusu na ovládací prvek způsobujícího chybu a vyvolá výjimku pro zastavení procesu ověřování.
Hierarchie dědičnosti
CDataExchange
Požadavky
Hlavička: afxwin.h
CDataExchange::CDataExchange
Voláním této členské funkce vytvoříte CDataExchange
objekt.
CDataExchange(
CWnd* pDlgWnd,
BOOL bSaveAndValidate);
Parametry
PDlgWnd
Ukazatel na nadřazené okno, které obsahuje ovládací prvek. Obvykle se jedná o objekt odvozený od CDialog.
bSaveAndValidate
Pokud JE TRUE, tento objekt ověří data a pak zapíše data z ovládacích prvků do členů. Pokud JE FALSE, přesune tento objekt data ze členů do ovládacích prvků.
Poznámky
CDataExchange
Vytvořte objekt sami pro uložení dodatečných informací v objektu výměny dat, který se předá členské funkci CWnd::D oDataExchange okna.
Příklad
CYourDataExchange dx(this, FALSE);
try
{
DoDataExchange(&dx);
}
catch (CUserException *pe)
{
// some part of the exchange went wrong
// but the user has already been notified
pe->Delete();
}
CDataExchange::Fail
Architektura volá tuto členovou funkci, když selže operace ověření dat dialogového okna (DDV).
void Fail();
Poznámky
Fail
obnoví fokus a výběr ovládacího prvku, jehož ověření se nezdařilo (pokud existuje ovládací prvek k obnovení). Fail
pak vyvolá výjimku typu CUserException pro zastavení procesu ověřování. Výjimka způsobí, že se zobrazí okno se zprávou s vysvětlením chyby. Jakmile se ověření DDV nezdaří, může uživatel znovu zadat data do urážlivých ovládacích prvků.
Implementátory vlastních rutin DDV mohou volat Fail
ze svých rutin, když se ověření nezdaří.
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
CDataExchange::m_bSaveAndValidate
Tento příznak označuje směr operace výměny dat dialogového okna (DDX).
BOOL m_bSaveAndValidate;
Poznámky
Příznak je nenulový, pokud CDataExchange
se objekt používá k přesunu dat z ovládacích prvků dialogového okna do datových členů třídy dialogového okna poté, co uživatel ovládací prvky upraví. Příznak je nula, pokud se objekt používá k inicializaci ovládacích prvků dialogového okna z datových členů třídy dialogového okna.
Příznak je také nenulový během ověřování dat dialogového okna (DDV).
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
CDataExchange::m_pDlgWnd
Obsahuje ukazatel na objekt CWnd , pro který probíhá výměna dat dialogového okna (DDX) nebo ověření (DDV).
CWnd* m_pDlgWnd;
Poznámky
Tento objekt je obvykle CDialog objekt. Implementátoři vlastních rutin DDX nebo DDV mohou pomocí tohoto ukazatele získat přístup k dialogovému oknu, které obsahuje ovládací prvky, na které pracují.
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
CDataExchange::P repareCtrl
Architektura volá tuto členovou funkci k přípravě zadaného ovládacího prvku pro výměnu dialogových dat (DDX) a ověřování (DDV).
HWND PrepareCtrl(int nIDC);
Parametry
nIDC
ID ovládacího prvku, který má být připraven pro DDX nebo DDV.
Návratová hodnota
HWND ovládacího prvku připravovaného pro DDX nebo DDV.
Poznámky
Použít PrepareEditCtrl místo pro úpravy ovládací prvky; použít tuto člennou funkci pro všechny ostatní ovládací prvky.
Příprava spočívá v uložení HWND ovládacího prvku do CDataExchange
třídy . Architektura používá tento popisovač k obnovení fokusu na dříve zaměřený ovládací prvek v případě selhání DDX nebo DDV.
Implementátoři vlastních rutin DDX nebo DDV by měli volat PrepareCtrl
všechny ovládací prvky bez úprav, pro které vyměňují data prostřednictvím DDX nebo validují data prostřednictvím DDV.
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
CDataExchange::P repareEditCtrl
Architektura volá tuto členovou funkci k přípravě zadaného ovládacího prvku pro výměnu dat dialogových oken (DDX) a ověření (DDV).
HWND PrepareEditCtrl(int nIDC);
Parametry
nIDC
ID ovládacího prvku pro úpravy, který se má připravit pro DDX nebo DDV.
Návratová hodnota
HWND ovládacího prvku pro úpravy připravovaného pro DDX nebo DDV.
Poznámky
Pro všechny ovládací prvky, které nejsou určené pro úpravy, použijte prepareCtrl .
Příprava se skládá ze dvou věcí. PrepareEditCtrl
Nejprve uloží HWND ovládacího prvku do CDataExchange
třídy . Architektura používá tento popisovač k obnovení fokusu na dříve zaměřený ovládací prvek v případě selhání DDX nebo DDV. Za druhé nastaví příznak ve CDataExchange
třídě, který označuje, že ovládací prvek, PrepareEditCtrl
jehož data se vyměňují nebo ověřují, je ovládací prvek pro úpravy.
Implementátoři vlastních rutin DDX nebo DDV by měli volat PrepareEditCtrl
všechny ovládací prvky pro úpravy, pro které vyměňují data prostřednictvím DDX nebo validují data prostřednictvím DDV.
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
CDataExchange::P repareOleCtrl
Rozhraní volá tuto členovou funkci k přípravě zadaného ovládacího prvku OLE pro výměnu dialogových dat (DDX) a ověřování (DDV).
COleControlSite* PrepareOleCtrl(int nIDC);
Parametry
nIDC
ID ovládacího prvku OLE, který má být připraven pro DDX nebo DDV.
Návratová hodnota
Ukazatel na lokalitu ovládacího prvku OLE.
Poznámky
Pro ovládací prvky pro úpravy použijte Místo toho PrepareEditCtrl nebo PrepareCtrl pro všechny ostatní ovládací prvky, které nejsou ole.
Implementátoři vlastních rutin DDX nebo DDV by měli volat PrepareOleCtrl
všechny ovládací prvky OLE, pro které vyměňují data prostřednictvím DDX nebo validují data prostřednictvím DDV.
Další informace o psaní vlastních rutin DDX a DDV najdete v technické poznámce 26. Přehled DDX a DDV najdete v tématech Témata týkající se výměny a ověřování dat dialogovéhookna a dialogových oken.
Viz také
MFC Sample VIEWEX
Graf hierarchie
CWnd::D oDataExchange
CWnd::UpdateData