Sdílet prostřednictvím


CDataExchange – třída

Podporuje rutiny pro výměnu dat dialogů (DDX) a ověřování dat dialogových oken (DDV) používané třídami Microsoft Foundation.

Syntaxe

class CDataExchange

Členové

Veřejné konstruktory

Název Popis
CDataExchange::CDataExchange CDataExchange Vytvoří objekt.

Veřejné metody

Název Popis
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 nebo ověření dat. Používá se 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 nebo ověření dat. Používá se pro ovládací prvky nonedit.

Veřejné datové členy

Název Popis
CDataExchange::m_bSaveAndValidate Příznak pro směr DDX a DDV.
CDataExchange::m_pDlgWnd Dialogové okno nebo okno, kde 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ěření dat. Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV najdete v tématu Výměna dat dialogového okna a ověřování a dialogová okna.

Objekt CDataExchange poskytuje kontextové informace potřebné k provedení DDX a DDV. Příznak m_bSaveAndValidate je FALSE, když 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 je TRUE, pokud se DDX používá k nastavení aktuálních hodnot dialogových ovládacích prvků na datové členy a při použití DDV k ověření datových hodnot. Pokud ověření DDV selže, procedura DDV zobrazí okno se zprávou s vysvětlením vstupní chyby. Procedura DDV pak zavolá Fail resetování fokusu na ovládací prvek pro přesměrování a vyvolá výjimku, která zastaví proces ověření.

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 CDialog odvozený objekt.

bSaveAndValidate
Pokud je pravda, tento objekt ověří data a pak zapíše data z ovládacích prvků do členů. Pokud je hodnota FALSE, přesune tento objekt data ze členů do ovládacích prvků.

Poznámky

CDataExchange Vytvořte objekt sami pro uložení dalších informací do objektu výměny dat, který se předá do CWnd::D oDataExchange členské funkce vašeho 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 poté vyvolá výjimku typu CUserException k zastavení procesu ověřování. Výjimka způsobí, že se zobrazí okno se zprávou s vysvětlením chyby. Po selhání ověřování DDV může uživatel znovu zadat data v ovládacím prvku pro přesměrování.

Implementátory vlastních rutin DDV můžou volat Fail ze svých rutin v případě selhání ověření.

Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

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řesunutí dat z ovládacích prvků dialogového okna do datových členů třídy dialogového okna po úpravě ovládacích prvků uživatelem. Příznak je nulový, 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 naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

CDataExchange::m_pDlgWnd

Obsahuje ukazatel na objekt CWnd, pro který probíhá výměna dat dialogového okna (DDX) nebo ověřování (DDV).

CWnd* m_pDlgWnd;

Poznámky

Tento objekt je obvykle objekt CDialog . Implementátory vlastních rutin DDX nebo DDV mohou pomocí tohoto ukazatele získat přístup k oknu dialogového okna obsahujícího ovládací prvky, na které pracují.

Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

CDataExchange::P repareCtrl

Architektura volá tuto člennou funkci k přípravě zadaného ovládacího prvku pro výměnu dat dialogového okna (DDX) a ověřování (DDV).

HWND PrepareCtrl(int nIDC);

Parametry

nIDC
ID ovládacího prvku, který se má připravit pro DDX nebo DDV.

Návratová hodnota

HWND ovládacího prvku, který je připravený pro DDX nebo DDV.

Poznámky

K úpravám ovládacích prvků použijte funkci PrepareEditCtrl . Tuto člennou funkci použijte pro všechny ostatní ovládací prvky.

Příprava se skládá z uložení HWND ovládacího prvku do CDataExchange třídy. Tato 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átory vlastních rutin DDX nebo DDV by měly volat PrepareCtrl všechny ovládací prvky bez úprav, pro které vyměňují data prostřednictvím DDX nebo ověřování dat prostřednictvím DDV.

Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

CDataExchange::P repareEditCtrl

Architektura volá tuto členovu funkci k přípravě zadaného ovládacího prvku pro úpravy pro výměnu dat dialogového okna (DDX) a ověřování (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 úprav, který je připravený pro DDX nebo DDV.

Poznámky

Místo toho použijte prepareCtrl pro všechny ovládací prvky bez úprav.

Příprava se skládá ze dvou věcí. PrepareEditCtrl Nejprve uloží HWND ovládacího prvku do CDataExchange třídy. Tato 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 třídyCDataExchange, který označuje, PrepareEditCtrl že ovládací prvek, jehož data se vyměňují nebo ověřují, je ovládací prvek pro úpravy.

Implementátory vlastních rutin DDX nebo DDV by měly volat PrepareEditCtrl všechny ovládací prvky úprav, pro které vyměňují data prostřednictvím DDX nebo ověřování dat prostřednictvím DDV.

Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

CDataExchange::P repareOleCtrl

Architektura volá tuto členovu funkci k přípravě zadaného ovládacího prvku OLE pro výměnu dat dialogového okna (DDX) a ověření (DDV).

COleControlSite* PrepareOleCtrl(int nIDC);

Parametry

nIDC
ID ovládacího prvku OLE, který se má připravit pro DDX nebo DDV.

Návratová hodnota

Ukazatel na lokalitu ovládacího prvku OLE.

Poznámky

Místo toho použijte PrepareEditCtrl pro úpravy ovládacích prvků nebo PrepareCtrl pro všechny ostatní ovládací prvky mimo OLE.

Implementátory vlastních rutin DDX nebo DDV by měly volat PrepareOleCtrl všechny ovládací prvky OLE, pro které vyměňují data prostřednictvím DDX nebo ověřování dat prostřednictvím DDV.

Další informace o psaní vlastních rutin DDX a DDV naleznete v technické poznámce 26. Přehled DDX a DDV naleznete v tématu Témata výměny dat dialogového okna a ověření a dialogového okna.

Viz také

MFC – ukázka VIEWEX
Graf hierarchie
CWnd::D oDataExchange
CWnd::UpdateData