MFC – ovládací prvky ActiveX: Použití datových vazeb v ovládacím prvku ActiveX
Výkonnější použití ovládacích prvků ActiveX je vazba na data, který umožňuje vlastnost ovládacího prvku, který chcete svázat s konkrétní pole v databázi.Pokud uživatel změní v této vlastnosti vazby dat, ovládací prvek upozorní databáze a aktualizovat pole záznamu požadavků.Databáze upozorní řízení úspěšné nebo neúspěšné žádosti.
Tento článek popisuje ovládacího prvku vedle úkolu.Implementace interakce vázání dat s databází je odpovědnost kontejneru ovládacího prvku.Jak spravovat databázi interakcí ve své nádobě je nad rámec této dokumentace.Ve zbytku tohoto článku je vysvětleno jak připravit datové vazby ovládacího prvku.
Konceptuální Diagram ovládacího prvku vázaného na Data
COleControl Třídy nabízí dvě členské funkce, které usnadňují vytváření datových vazeb jednoduchý proces implementace.První funkce, BoundPropertyRequestEdit, slouží k vyžádání oprávnění ke změně hodnoty vlastnosti.BoundPropertyChanged, druhá funkce je volána po hodnotu vlastnosti bylo úspěšně změněno.
Tento článek obsahuje následující témata:
Vytvoření vlastnosti umožňující vazbu akcií
Vytváření vazbu Get a Set metody
Vytvoření vlastnosti umožňující vazbu akcií
Je možné vytvořit uloženou vlastnost vázaný, ačkoli je pravděpodobnější, že budete vazbu get a set metody.
[!POZNÁMKA]
Burzovní vlastnosti mají vazbu a requestedit atributy ve výchozím nastavení.
Chcete-li přidat pomocí Průvodce přidáním vlastnosti umožňující vazbu uloženou vlastnost
Zahájení projektu pomocí MFC ActiveX Control Wizard.
Klepněte pravým tlačítkem myši na uzel rozhraní pro ovládací prvek.
Otevře místní nabídku.
V místní nabídce klepněte na příkaz Přidat a potom klepněte na tlačítko Přidat vlastnost.
Vyberte jednu z položek vlastnostnázev rozevíracího seznamu. Můžete například vybrat textu.
Vzhledem k tomu, textu uloženou vlastnost je vazbu a requestedit atributy jsou již zkontrolovány.
Vyberte z následujících políček Atributy IDL karta: displaybind a defaultbind Chcete-li přidat atributy do definice vlastností v projektu.Soubor IDL.Tyto atributy zviditelnit ovládací prvek uživatele a provést uloženou vlastnost Výchozí vlastnost vazbu.
V tomto okamžiku ovládací prvek může zobrazovat data ze zdroje dat, ale uživatel nebude moci aktualizovat datová pole.Pokud chcete, aby ovládací prvek se také moci aktualizovat data, změňte OnOcmCommandOnOcmCommand funkce, která má vypadat takto:
#ifdef _WIN32
WORD wNotifyCode = HIWORD(wParam);
#else
WORD wNotifyCode = HIWORD(lParam);
#endif
if(wNotifyCode==EN_CHANGE)
{
if(!BoundPropertyRequestEdit(DISPID_TEXT))
{
SetNotSupported();
}
else
{
GetText();
// Notify container of change
BoundPropertyChanged(DISPID_TEXT);
}
}
return 0;
Nyní můžete vytvořit projekt, který bude registrovat ovládací prvek.Vložíte-li ovládací prvek v dialogovém okně, Datové pole a Zdroj dat bude byly přidány vlastnosti a nyní můžete vybrat zdroj dat a pole, které chcete zobrazit v ovládacím prvku.
Vytváření vazbu Get a Set metody
Kromě vázaný na data get a set metody, můžete také vytvořit uloženou vlastnost vazbu.
[!POZNÁMKA]
Tento postup předpokládá, že máte ovládací prvek ActiveX projektu, která je podtřídou ovládací prvky pro Windows.
Chcete-li přidat pomocí Průvodce přidáním vlastnosti umožňující vazbu get a set metody
Načtěte projektu ovládacího prvku.
Na Nastavení vyberte ovládací prvek podtřídu třídy okna.Například můžete chtít podtřídy ovládací prvek pro úpravy.
Načtěte projektu ovládacího prvku.
Klepněte pravým tlačítkem myši na uzel rozhraní pro ovládací prvek.
Otevře místní nabídku.
V místní nabídce klepněte na příkaz Přidat a potom klepněte na tlačítko Přidat vlastnost.
Název vlastnosti v Název vlastnosti pole.Použití MyProp v tomto příkladu.
Vyberte typ dat z Vlastnost typu rozevíracího seznamu.Použití Krátký v tomto příkladu.
Pro Typ implementace, klepněte na tlačítko Metody Get/Set.
Zaškrtněte následující políčka na kartě Atributy IDL: vazbu, requestedit, displaybind, a defaultbind Chcete-li přidat atributy do definice vlastností v projektu.Soubor IDL.Tyto atributy zviditelnit ovládací prvek uživatele a provést uloženou vlastnost Výchozí vlastnost vazbu.
Klepněte na tlačítko Dokončit.
Změna textu SetMyProp funkce tak, aby obsahoval následující kód:
if(!BoundPropertyRequestEdit(1)) { SetNotSupported(); return; } else { if(AmbientUserMode()) // SendMessage only at run-time { _stprintf_s(m_strText.GetBuffer(10), 10, _T("%d"), newVal); SetWindowText(m_strText); m_strText.ReleaseBuffer(); } else { InvalidateControl(); } // Signal a property change // This is the MFC equivalent of OnChanged() BoundPropertyChanged(1); SetModifiedFlag(); }
Parametr předaný BoundPropertyChanged a BoundPropertyRequestEdit funkce je dispid vlastnosti, což je parametr předaný id() atribut vlastnosti v.Soubor IDL.
Změnit OnOcmCommand funkce tak, aby obsahovala následující kód:
#ifdef _WIN32 WORD wNotifyCode = HIWORD(wParam); #else WORD wNotifyCode = HIWORD(lParam); #endif if(wNotifyCode==EN_CHANGE) { if(!BoundPropertyRequestEdit(DISPID_TEXT)) { SetNotSupported(); } else { GetText(); // Notify container of change BoundPropertyChanged(DISPID_TEXT); } } return 0;
Změnit OnDraw funkce tak, aby obsahoval následující kód:
if(!AmbientUserMode()) { // Draw the Text property at design-time pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(WHITE_BRUSH))); pdc->DrawText(m_strText, -1, (LPRECT)&rcBounds, DT_LEFT | DT_TOP | DT_SINGLELINE); } else { DoSuperclassPaint(pdc, rcBounds); }
Do veřejné části záhlaví souboru soubor hlaviček pro třídu ovládacího prvku přidejte následující definice (konstruktory) členské proměnné:
CString m_strText; short m_nMyNum;
Být poslední řádek v následující řádek DoPropExchange funkce:
PX_String(pPX, _T("MyProp"), m_strText);
Změnit OnResetState funkce tak, aby obsahoval následující kód:
COleControl::OnResetState(); // Resets defaults found in DoPropExchange m_strText = AmbientDisplayName();
Změnit GetMyProp funkce tak, aby obsahoval následující kód:
if(AmbientUserMode()) { GetWindowText(m_strText); m_nMyNum = (short)_ttoi(m_strText); } return m_nMyNum;
Nyní můžete vytvořit projekt, který bude registrovat ovládací prvek.Vložíte-li ovládací prvek v dialogovém okně, Datové pole a Zdroj dat bude byly přidány vlastnosti a nyní můžete vybrat zdroj dat a pole, které chcete zobrazit v ovládacím prvku.
Viz také
Referenční dokumentace
Ovládací prvky vázané na data (ADO a RDO)