2010-04-07 27 views

Trả lời

9

Tạo đường tròn làm tròn làm đường dẫn, chọn đường dẫn làm đường cắt, sau đó thực hiện tô màu gradient của cùng một hình chữ nhật. Mã với MFC sẽ trông như thế này:

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); 

Nếu bạn không sử dụng MFC, các pDC->x(...) sẽ được thay thế bằng x(your_DC, ...).

+0

cảm ơn bạn, nó hoạt động! – lovespring

Các vấn đề liên quan