Nuta
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować się zalogować lub zmienić katalog.
Dostęp do tej strony wymaga autoryzacji. Możesz spróbować zmienić katalogi.
Czasami kontrolka ActiveX będzie mieć więcej właściwości niż można rozsądnie zmieścić na jednej stronie właściwości. W takim przypadku można dodać strony właściwości do kontrolki ActiveX, aby wyświetlić te właściwości.
W tym artykule omówiono dodawanie nowych stron właściwości do kontrolki ActiveX, która ma już co najmniej jedną stronę właściwości. Aby uzyskać więcej informacji na temat dodawania stron właściwości standardowych (czcionka, obraz lub kolor), zobacz artykuł MFC ActiveX Controls: Using Stock Property Pages (Kontrolki ActiveX MFC: używanie stron właściwości standardowych).
Poniższe procedury korzystają z przykładowej struktury kontrolek ActiveX utworzonej przez Kreatora kontrolek ActiveX. W związku z tym nazwy klas i identyfikatory są unikatowe dla tego przykładu.
Aby uzyskać więcej informacji na temat używania stron właściwości w kontrolce ActiveX, zobacz następujące artykuły:
Kontrolki ActiveX MFC: używanie stron właściwości standardowych
Uwaga / Notatka
Zdecydowanie zaleca się, aby nowe strony właściwości były zgodne z rozmiarem standardowym stron właściwości kontrolki ActiveX. Strony właściwości obrazów stockowych i koloru mierzą 250x62 jednostek okien dialogowych (DLU). Standardowa strona właściwości czcionki ma rozmiar 250x110 DLU. Domyślna strona właściwości utworzona przez Kreatora kontrolek ActiveX używa standardu 250x62 DLU.
Aby wstawić nowy szablon strony właściwości do projektu
Po otwarciu projektu sterującego otwórz widok zasobu w obszarze roboczym projektu.
Kliknij prawym przyciskiem myszy pozycję Widok zasobów, aby otworzyć menu skrótów, a następnie kliknij polecenie Dodaj zasób.
Rozwiń węzeł Dialog i wybierz IDD_OLE_PROPPAGE_SMALL.
Kliknij pozycję Nowy , aby dodać zasób do projektu.
Wybierz nowy szablon strony właściwości, aby odświeżyć okno Właściwości (w widoku zasobu).
Wprowadź nową wartość właściwości ID . W tym przykładzie użyto IDD_PROPPAGE_NEWPAGE.
Kliknij przycisk Zapisz na pasku narzędzi.
Aby skojarzyć nowy szablon z klasą
Otwórz widok klasy.
Kliknij prawym przyciskiem myszy w widoku klasy, aby otworzyć menu skrótów.
W menu skrótów kliknij pozycję Dodaj , a następnie kliknij pozycję Dodaj klasę.
Spowoduje to otwarcie okna dialogowego Dodawanie klasy .
Kliknij dwukrotnie szablon Klasa MFC .
W polu Nazwa klasy w Kreatorze klas MFC wpisz nazwę nowej klasy okna dialogowego. (W tym przykładzie
CAddtlPropPage.Jeśli chcesz zmienić nazwy plików, kliknij przycisk Zmień. Wpisz nazwy dla plików implementacji i nagłówka lub zaakceptuj nazwy domyślne.
W polu Klasa podstawowa wybierz pozycję
COlePropertyPage.W polu Identyfikator dialogu wybierz IDD_PROPPAGE_NEWPAGE.
Kliknij przycisk Zakończ , aby utworzyć klasę.
Aby zezwolić użytkownikom kontrolki na dostęp do tej nowej strony właściwości, wprowadź następujące zmiany w sekcji makra strony właściwości kontrolki (znajdującej się w pliku implementacji kontrolki):
BEGIN_PROPPAGEIDS(CMyAxUICtrl, 2)
PROPPAGEID(CMyAxUIPropPage::guid)
PROPPAGEID(CAddtlPropPage::guid)
END_PROPPAGEIDS(CMyAxUICtrl)
Należy pamiętać, że należy zwiększyć drugi parametr makra BEGIN_PROPPAGEIDS (liczba stron właściwości) z zakresu od 1 do 2.
Należy również zmodyfikować plik implementacji kontrolki (.CPP), aby uwzględniał plik nagłówkowy (.H) nowej klasy strony właściwości.
Następnym krokiem jest utworzenie dwóch nowych zasobów ciągów znaków, które określą nazwę typu i etykietę dla nowej strony właściwości.
Aby dodać nowe zasoby tekstowe do strony właściwości
Po otwarciu projektu sterującego otwórz widok zasobów.
Kliknij dwukrotnie folder String Table , a następnie kliknij dwukrotnie istniejący zasób tabeli ciągów, do którego chcesz dodać ciąg.
Spowoduje to otwarcie tabeli ciągów w oknie.
Wybierz pusty wiersz na końcu tabeli ciągów i wpisz tekst lub podpis ciągu: na przykład "Dodatkowa strona właściwości".
Spowoduje to otwarcie strony Właściwości ciągu z polami Nagłówek i Identyfikator. Pole Podpis zawiera wpisany ciąg.
W polu Identyfikator wybierz lub wpisz identyfikator ciągu. Naciśnij Enter po zakończeniu.
W tym przykładzie użyto IDS_SAMPLE_ADDPAGE dla nazwy typu nowej strony właściwości.
Powtórz kroki 3 i 4, używając IDS_SAMPLE_ADDPPG_CAPTION jako identyfikatora i "Dodatkowa strona właściwości" jako podpisu.
W pliku CPP nowej klasy strony właściwości (w tym przykładzie
CAddtlPropPage) zmodyfikuj kodCAddtlPropPage::CAddtlPropPageFactory::UpdateRegistrytak, aby IDS_SAMPLE_ADDPAGE został przekazany przez funkcję AfxOleRegisterPropertyPageClass, jak w poniższym przykładzie:BOOL CAddtlPropPage::CAddtlPropPageFactory::UpdateRegistry(BOOL bRegister) { if (bRegister) return AfxOleRegisterPropertyPageClass(AfxGetInstanceHandle(), m_clsid, IDS_SAMPLE_ADDPAGE); else return AfxOleUnregisterClass(m_clsid, NULL); }Zmodyfikuj konstruktor
CAddtlPropPage, aby IDS_SAMPLE_ADDPPG_CAPTION został przekazany do konstruktoraCOlePropertyPagew następujący sposób:CAddtlPropPage::CAddtlPropPage() : COlePropertyPage(IDD, IDS_SAMPLE_ADDPPG_CAPTION) { }
Po wprowadzeniu niezbędnych modyfikacji ponownie skompiluj projekt i użyj kontenera testowego, aby przetestować nową stronę właściwości. Aby uzyskać informacje na temat uzyskiwania dostępu do kontenera testowego, zobacz Testowanie właściwości i zdarzeń za pomocą kontenera testowego.