IVsGradient.DrawGradient(IntPtr, IntPtr, RECT[], RECT[]) Yöntem
Tanım
Önemli
Bazı bilgiler ürünün ön sürümüyle ilgilidir ve sürüm öncesinde önemli değişiklikler yapılmış olabilir. Burada verilen bilgilerle ilgili olarak Microsoft açık veya zımni hiçbir garanti vermez.
Belirtilen bir konumda verilen degradeyi çizer.
public:
int DrawGradient(IntPtr hwnd, IntPtr hdc, cli::array <Microsoft::VisualStudio::OLE::Interop::RECT> ^ gradientRect, cli::array <Microsoft::VisualStudio::OLE::Interop::RECT> ^ sliceRect);
public int DrawGradient (IntPtr hwnd, IntPtr hdc, Microsoft.VisualStudio.OLE.Interop.RECT[] gradientRect, Microsoft.VisualStudio.OLE.Interop.RECT[] sliceRect);
abstract member DrawGradient : nativeint * nativeint * Microsoft.VisualStudio.OLE.Interop.RECT[] * Microsoft.VisualStudio.OLE.Interop.RECT[] -> int
Public Function DrawGradient (hwnd As IntPtr, hdc As IntPtr, gradientRect As RECT(), sliceRect As RECT()) As Integer
Parametreler
- hwnd
-
IntPtr
nativeint
'ndaki Degradeyle boyanmak üzere bölgeyi içeren pencerenin tutamacı.
- hdc
-
IntPtr
nativeint
'ndaki Degradeyi çizerken kullanılan cihaz bağlamının tanıtıcısı.
- gradientRect
- RECT[]
'ndaki Degradenin uygulanabileceğini tam kapsam ve geometriyi tanımlayarak kapsayıcı dikdörtgen veya kapsayan bölge.
- sliceRect
- RECT[]
'ndaki Bir degradenin gerçekten boyanmış olduğu bölge tanımlayarak dilim dikdörtgeni.
Döndürülenler
Yöntem başarılı olursa, döndürür S_OK . Başarısız olursa, bir hata kodu döndürür.
Açıklamalar
COM Imzası
Vsshell80. IDL adresinden:
HRESULT IVsGradient::DrawGradient(
[in] HWND hwnd,
[in] HDC hdc,
[in] RECT * gradientRect,
[in] RECT * sliceRect
);
Hem hem de gradientRect sliceRect tanıtıcı tarafından belirtilen pencere tarafından tanımlanan koordinat sisteminde tanımlanmalıdır hwnd .
Ortam SDK 'Sı, statik ve statik olmayan iki tür degradeleri destekler.
Hangi degradelerin statik ve statik olmayan ve bunun etkilerine ilişkin bilgiler için, bkz __GRADIENTTYPE ..
Statik degradeler için ortam, gradyan dikdörtgeninin kalıcı bir tanımını korur ve gradientRect parametresi yok sayılır.
Parametresi tarafından belirtilen dilim dikdörtgeni sliceRect her zaman parametresi tarafından belirtilen dikdörtgenle tanımlanan dikdörtgen içinde bulunmalıdır gradientRect .
İki dikdörtgen bölge gradientRect ve sliceRect yöntemin bir DrawGradient Kullanıcı arabirimi öğesi üzerinde bir degradeyi nasıl boyayacağını tanımlar.
gradientRectDikdörtgen gradyan dikdörtgeni veya içeren bölge olarak adlandırılır. Bir degradenin uygulanmasındaki tam kapsamı ve konumu belirtir.
sliceRectDikdörtgen, dilim dikdörtgeni olarak adlandırılır ve belirtim, degradenin gerçekten boyanmış olduğu bölgeyi belirtir.
Degradelerin maskelenme, dilim dikdörtgeninin gradyan dikdörtgende bulunduğu farklı boyutta gradyan ve dilim dikdörtgenleri kullanılarak gerçekleştirilebilir. Bu durumda, bir UI öğesinin yalnızca bir bölümü bir gradyan ile boyanmıştır, ancak gradyan deseninin tamamı, gradyan dikdörtgeninin tamamı boyandığı gibi korunur.
Örneğin, 100 100 piksel genişliğinde bir kare için 10 piksel geniş bir kareyi boyamak
(
RECT0, 0) ve sağ alt köşedeki (100.100) sol üst köşenin bulunduğu bir yapıyla birlikte bir gradyan dikdörtgeni tanımlama.4 10 piksel geniş dilim
RECTyapıları tanımlama,(0, 0) ve sağ alt köşedeki (100, 10) bir sol üst köşesinden
(0, 0) ve sağ alt köşedeki (10.100) bir sol üst köşesinden
(90, 0) ve sağ alt köşedeki (100.100) bir sol üst köşesinden
(0, 90) ve sağ alt köşedeki (100, 10) bir sol üst köşesinden
IVsGradient.DrawGradienther dilim dikdörtgeni için bir kez ve her zaman aynı gradyan dikdörtgeni kullanarak dört kez çağırma.
Buna ek olarak, bir denetimin yuvarlatılmış köşeler, bir parçalama sekmesi veya kolayca kırpılamayan veya maskelenmemiş dikdörtgen olmayan bir bölge olarak boyanma gibi, dikdörtgen boyama belirli bir durumda tatmin edici olmayabilir.
Bu durumlarda, VSPackages, yöntem tarafından döndürülen renklerin dizisine veya vektörlerine göre belirli bir degradeyi boyamak için fırça oluşturur GetGradientVector .
Örneğin, gelişmiş dosya sekmeleri, sekme için üç bileşen (Fin, metin alanı ve son--bileşenlerin renk değişikliği aracılığıyla çizileceği ve uzatarak) eklenerek çizilmiştir. Belirli bir rengin her pikseli, GetGradientVector yatay eksen üzerindeki konumuyla ilgili olarak döndürülen dizideki öğe ile değiştirilebilir.
Daha fazla bilgi için bkz. nasıl yapılır: Visual Studio gradyan desteğini kullanma.