Not
Bu sayfaya erişim yetkilendirme gerektiriyor. Oturum açmayı veya dizinleri değiştirmeyi deneyebilirsiniz.
Bu sayfaya erişim yetkilendirme gerektiriyor. Dizinleri değiştirmeyi deneyebilirsiniz.
Metin Hizmetleri Çerçevesi (TSF), bir metin hizmetinin metin için görüntüleme öznitelikleri sağlamasına olanak tanır. Bu, uygulamanın ek görsel geri bildirim görüntülemesini sağlar. Örneğin, yazım denetleyicisi metin hizmeti yanlış yazılmış bir sözcüğü kırmızı alt çizgiyle vurgulayabilir. Sağlanabilir görüntüleme öznitelikleri TF_DISPLAYATTRIBUTE yapısı tarafından tanımlanır ve metin rengi, metin arka plan rengi, alt çizgi stili, altı çizili renk ve altı çizili kalınlık içerir.
Metin işlenirken, uygulama çizilen metnin görüntüleme özniteliklerini edinmeli ve metnin çizildiği şekli değiştirmek için öznitelikleri kullanmalıdır. Görüntü özniteliklerini almak için aşağıdaki adımları tamamlayın.
- ITfContext::GetPropertyçağırarak GUID_PROP_ATTRIBUTE için bir özellik nesnesi alın.
- ITfReadOnlyProperty::GetValueçağırarak belirtilen aralık için GUID_PROP_ATTRIBUTE değerini alın. Bu, TfGuidAtom değerini sağlar.
- ITfCategoryMgr::GetGUIDçağırarak TfGuidAtom değerini GUID'ye dönüştürün.
- ITfDisplayAttributeMgr::GetDisplayAttributeInfoçağırarak görüntüleme özniteliği için bir ITfDisplayAttributeInfo nesnesi oluşturun.
- ITfDisplayAttributeInfo::GetAttributeInfoçağrısı yaparak görüntü özniteliği bilgilerini alın.
Aşağıdaki kod örneği, verilen bir bağlamdan, aralıktan ve düzenleme çerezinden görüntü niteliklerini alan bir işlevi gösterir.
HRESULT GetDispAttrFromRange( ITfContext *pContext,
ITfRange *pRange,
TfEditCookie ec,
TF_DISPLAYATTRIBUTE *pDispAttr)
{
HRESULT hr;
//Create the category manager.
ITfCategoryMgr *pCategoryMgr;
hr = CoCreateInstance( CLSID_TF_CategoryMgr,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITfCategoryMgr,
(LPVOID*)&pCategoryMgr);
if(FAILED(hr))
{
return hr;
}
//Create the display attribute manager.
ITfDisplayAttributeMgr *pDispMgr;
hr = CoCreateInstance( CLSID_TF_DisplayAttributeMgr,
NULL,
CLSCTX_INPROC_SERVER,
IID_ITfDisplayAttributeMgr,
(LPVOID*)&pDispMgr);
if(FAILED(hr))
{
pCategoryMgr->Release();
return hr;
}
//Get the display attribute property.
ITfProperty *pProp;
hr = pContext->GetProperty(GUID_PROP_ATTRIBUTE, &pProp);
if(SUCCEEDED(hr))
{
VARIANT var;
VariantInit(&var);
hr = pProp->GetValue(ec, pRange, &var);
if(S_OK == hr) //Returns S_FALSE if the range is not completely covered by the property.
{
if(VT_I4 == var.vt)
{
//The property is a guidatom.
GUID guid;
//Convert the guidatom into a GUID.
hr = pCategoryMgr->GetGUID((TfGuidAtom)var.lVal, &guid);
if(SUCCEEDED(hr))
{
ITfDisplayAttributeInfo *pDispInfo;
//Get the display attribute info object for this attribute.
hr = pDispMgr->GetDisplayAttributeInfo(guid, &pDispInfo, NULL);
if(SUCCEEDED(hr))
{
//Get the display attribute info.
hr = pDispInfo->GetAttributeInfo(pDispAttr);
pDispInfo->Release();
}
}
}
else
{
//An error occurred; GUID_PROP_ATTRIBUTE must always be VT_I4.
hr = E_FAIL;
}
VariantClear(&var);
}
pProp->Release();
}
pCategoryMgr->Release();
pDispMgr->Release();
return hr;
}
İlgili konular
-
ITfDisplayAttributeInfo::GetAttributeInfo (Görüntüleme Özniteliği Bilgisi Alma)