2010-04-07 13 views

उत्तर

9

पथ के रूप में गोलाकार आयत बनाएं, क्लिपिंग पथ के रूप में पथ का चयन करें, फिर उसी आयत के ढाल को भरें। MFC के साथ कोड इस प्रकार दिखाई देगा:

int top = 10; 
int left = 10; 
int right = 200; 
int bottom = 200; 
int radius = 20; 


pDC->BeginPath(); 
pDC->RoundRect(left, top, right, bottom, radius, radius); 
pDC->EndPath(); 
pDC->SelectClipPath(RGN_COPY); 

TRIVERTEX vertices[2]; 

vertices[0].x = left; 
vertices[0].y = top; 
vertices[0].Red = 0xffff; 
vertices[0].Green = 0; 
vertices[0].Blue = 0; 
vertices[0].Alpha = 0xffff; 

vertices[1].x = right; 
vertices[1].y = bottom; 
vertices[1].Red = 0; 
vertices[1].Green = 0; 
vertices[1].Blue = 0xffff; 
vertices[1].Alpha = 0xffff; 

GRADIENT_RECT r; 
r.UpperLeft = 0; 
r.LowerRight = 1; 

pDC->GradientFill(vertices, 2, &r, 1, GRADIENT_FILL_RECT_V); 

आप MFC उपयोग नहीं कर रहे हैं, तो pDC->x(...)x(your_DC, ...) के साथ प्रतिस्थापित किया जाएगा।

+0

धन्यवाद, यह काम करता है! – lovespring

संबंधित मुद्दे