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