Udostępnij przez


Standardowy obiekt czcionki

Standardowa właściwość czcionki otoczenia dostarczana przez kontener i standardową właściwość czcionki dostarczaną przez kontrolkę zapewniają standardowy obiekt czcionki. Oznacza to, że te standardowe czcionki zapewniają wskaźnik IDispatch do standardowego obiektu czcionki.

Obiekt czcionki jest implementacją systemu zestawu interfejsów na podstawie podstawowej obsługi czcionek GDI. Obiekt czcionki jest tworzony za pomocą funkcji interfejsu API OleCreateFontIndirect nadanej strukturze FONTDESC. Obiekt czcionki obsługuje wiele właściwości odczytu/zapisu, a także metody niestandardowe za pośrednictwem interfejsu IFonti obsługuje ten sam zestaw właściwości (ale nie metod) za pośrednictwem dispinterface IFontDisp. Dispinterface jest używany dla właściwości czcionki wymienionych wcześniej. Właściwości odpowiadają atrybutom czcionki GDI opisanym w strukturzeLOGFONT.

Obiekt czcionki obsługuje również interfejs wychodzący IPropertyNotifySink, aby klient mógł określić, kiedy zmieniają się właściwości czcionki. Ponieważ obiekt czcionki obsługuje co najmniej jeden interfejs wychodzący, implementuje również IConnectionPointContainer i jeden punkt połączenia dla IPropertyNotifySink w tym celu.

Obiekt czcionki udostępnia właściwość hFont, która jest uchwytem czcionek systemu Windows zgodnym z innymi atrybutami określonymi dla czcionki. Obiekt czcionki opóźnia realizację tej czcionki, gdy jest to możliwe, więc kolejne ustawienie dwóch właściwości czcionki nie spowoduje realizacji czcionki pośredniej. Ponadto w ramach optymalizacji standardowy obiekt czcionki utrzymuje pamięć podręczną uchwytów czcionek. Dwa obiekty czcionek w tym samym procesie, które mają identyczne właściwości, będą zwracać ten sam uchwyt czcionki. Obiekt czcionki może usuwać czcionki z tej pamięci podręcznej, co wprowadza specjalne zagadnienia dla klientów korzystających z tej właściwości hFont. Aby uzyskać więcej informacji, zobacz IFont::get_hFont.

Obiekt czcionki obsługuje również IPersistStream, dzięki czemu może zapisywać i ładować się z wystąpienia IStream. Każdy inny obiekt, który używa obiektu czcionki wewnętrznie, zwykle zapisuje i ładuje czcionkę w ramach obsługi trwałości obiektu.

Ponadto obiekt czcionki obsługuje IDataObject, za pomocą którego udostępnia zestaw właściwości zawierający wpisane wartości dla każdej właściwości czcionki.

właściwości kontrolki