יום שישי, 17 בפברואר 2012

עיקול הפינות של הטופס או של פקד אחר

נעשה ע"י:


// Curve corners:
[DllImport("Gdi32.dll", EntryPoint = "CreateRoundRectRgn")]
private static extern IntPtr CreateRoundRectRgn
(
    int nLeftRect,      // x-coordinate of upper-left corner
    int nTopRect,      // y-coordinate of upper-left corner
    int nRightRect,     // x-coordinate of lower-right corner
    int nBottomRect,  // y-coordinate of lower-right corner
    int nWidthEllipse,  // height of ellipse
    int nHeightEllipse  // width of ellipse
);

ולאחר מכן יש למקם את הקוד הבא בשיטה האתחול של הטופס (Load או בבנאי של הטופס):
public Form1() //constructor
{
  this.Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(10, 10, Width, Height, 30, 30));
  btn.Region = System.Drawing.Region.FromHrgn(CreateRoundRectRgn(4, 4, btn.Width, btn.Height, c, c));
}

את הרעיון הזה מצאתי כאן:
http://stackoverflow.com/questions/5092216/c-form-with-custom-border-and-rounded-edges

אין תגובות:

הוסף רשומת תגובה