Sdílet prostřednictvím


Ovládací prvky MFC ActiveX: Ovládací prvek ActiveX pomocí vázání dat

Výkonnější použití ovládacích prvků ActiveX je vázání dat, což umožňuje vlastnost ovládací prvek svázat s konkrétní pole v databázi.Pokud uživatel změní data v této vlastnosti vázaný, ovládací prvek upozorní databáze a aktualizovat pole záznamu požadavků.Databáze upozorní řízení úspěch nebo neúspěch žádost.

Tento článek se zabývá straně řízení úkolu.Implementace interakce vazby dat v databázi je odpovědnost ovládací prvek kontejner.Jak spravovat databázi interakcí v v kontejneru je nad rámec této dokumentace.Jak připravit pro datové vazby ovládacího prvku je vysvětleno ve zbytku tohoto článku.

Konceptuální Diagram ovládací prvek vázán na Data

Ovládací prvek vázaný na data

COleControl Třída poskytuje snadný proces implementovat vázání dat provést dvě funkce člena.První funkce BoundPropertyRequestEdit, je pro žádost o oprávnění ke změně hodnoty vlastnosti.BoundPropertyChanged, druhá funkce se nazývá po hodnotu vlastnosti bylo úspěšně změněno.

Tento článek obsahuje následující témata:

  • Vytvoření zásob vazbu vlastnosti

  • Vytváření vazbu metodu Get a Set

Vytvoření zásob vazbu vlastnosti

Je možné vytvořit vlastnost zásobní vázán na data, ačkoli je pravděpodobnější, že budete Metoda vazbu get a set.

[!POZNÁMKA]

Burzovní vlastnosti mají vazbu a requestedit ve výchozím nastavení atributů.

Přidat vazbu akcií vlastnost pomocí Průvodce přidáním vlastností

  1. Začít projekt Průvodce ovládacího prvku MFC ActiveX.

  2. Klepněte pravým tlačítkem na uzel rozhraní pro ovládání.

    Otevře místní nabídku.

  3. V místní nabídce klepněte na příkaz Přidat a klepněte na tlačítko Přidat vlastnost.

  4. Vyberte jednu z položek Vlastnostnázev rozevíracího seznamu.Můžete například vybrat textu.

    Protože textu je vlastnost akcií vazbu a requestedit atributy jsou již zkontrolovány.

  5. Vyberte z následujících políček IDL atributy karta: displaybind a defaultbind přidání atributů do definice vlastnosti v rámci projektu.IDL souboru.Tyto atributy zviditelnit ovládací prvek uživatele a vytvořit vazbu vlastnosti výchozí vlastnost akcií.

V tomto okamžiku ovládacího prvku můžete zobrazit data ze zdroje dat, ale uživateli nebude možné aktualizovat datová pole.Pokud má vaše řízení také možné aktualizovat data, změňte OnOcmCommandOnOcmCommand funkce 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 bude zaregistrovat ovládací prvek.Při vložení ovládacího prvku v dialogovém okně, Datové pole a Zdroje dat bude byly přidány vlastnosti a nyní vybrat zdroj dat a pole zobrazit v ovládacím prvku.

Vytváření vazbu metodu Get a Set

Vedle vazbou na data metody get a set, můžete vytvořit také vazbu akcií vlastnost.

[!POZNÁMKA]

Tento postup předpokládá, že jste ovládací prvek ActiveX project podtřídy dané řízení systému Windows.

Přidat vazbu get a set metody pomocí Průvodce přidáním vlastností

  1. Načtení ovládacího prvku projektu.

  2. Na Nastavení řízení stránky, vyberte třídu okna pro ovládací prvek podtřídy.Například můžete chtít podtřídy ovládacího prvku pro úpravy.

  3. Načtení ovládacího prvku projektu.

  4. Klepněte pravým tlačítkem na uzel rozhraní pro ovládání.

    Otevře místní nabídku.

  5. V místní nabídce klepněte na příkaz Přidat a klepněte na tlačítko Přidat vlastnost.

  6. Zadejte název vlastnosti Název vlastnosti pole.Použití MyProp v tomto příkladu.

  7. Vyberte typ dat z Vlastnost typu rozevíracího seznamu.Použití krátké v tomto příkladu.

  8. Pro Typ implementace, klepněte na tlačítko Metody Get a Set.

  9. Na kartě IDL atributy vyberte následující políčka: vazbu, requestedit, displaybind, a defaultbind přidání atributů do definice vlastnosti v rámci projektu.IDL souboru.Tyto atributy zviditelnit ovládací prvek uživatele a vytvořit vazbu vlastnosti výchozí vlastnost akcií.

  10. Klepněte na tlačítko Dokončit.

  11. Změna textu SetMyProp fungovat 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();
    }
    
  12. Parametr předaný BoundPropertyChanged a BoundPropertyRequestEdit je funkce dispid vlastnosti, je parametr předaný pro vlastnost v atributu id().IDL souboru.

  13. Změnit OnOcmCommand fungovat tak, aby obsahoval 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;
    
  14. Změnit OnDraw fungovat 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);
    }
    
  15. Do veřejné části záhlaví souboru soubor záhlaví pro třídu ovládací prvek přidáte následující definice (konstruktory) členské proměnné:

    CString m_strText;
    short m_nMyNum;
    
  16. Provést poslední řádek následujícího řádku DoPropExchange funkce:

    PX_String(pPX, _T("MyProp"), m_strText);
    
  17. Změnit OnResetState fungovat tak, aby obsahoval následující kód:

        COleControl::OnResetState();  // Resets defaults found in DoPropExchange
       m_strText = AmbientDisplayName();
    
  18. Změnit GetMyProp fungovat 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 bude zaregistrovat ovládací prvek.Při vložení ovládacího prvku v dialogovém okně, Datové pole a Zdroje dat bude byly přidány vlastnosti a nyní vybrat zdroj dat a pole zobrazit v ovládacím prvku.

Viz také

Referenční dokumentace

Ovládací prvky vázané na data (ADO a RDO)

Koncepty

Ovládací prvky MFC ActiveX