using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Text; using System.Windows.Forms; using System.Runtime.InteropServices; namespace APIDemo { public partial class Form1 : Form { [StructLayout(LayoutKind.Sequential)] private struct POINTAPI { internal int x; internal int y; } [DllImport("gdi32.dll")] private static extern IntPtr CreatePolygonRgn( ref POINTAPI lpPoint, int nCount, int nPolyFillMode); [DllImport("user32.dll")] private static extern IntPtr SetWindowRgn( IntPtr hWnd, IntPtr hRgn, ref Boolean bRedraw); public Form1() { InitializeComponent(); //创建不规则窗体 POINTAPI[] poin; poin =new POINTAPI [5]; poin[0].x = 90; poin[0].y = 90; poin[1].x = this.Width; poin[1].y = 0; poin[2].x = Width ; poin[2].y = this.Height/2; poin[3].x = Width / 2; poin[3].y = Height / 2; poin[4].x = 0; poin[4].y = Width; Boolean flag = true; IntPtr hRgn= CreatePolygonRgn(ref poin[0],8,1); SetWindowRgn(this.Handle, hRgn, ref flag ); this.BackColor = Color.BurlyWood; } //设置窗体显示状态 [DllImport("user32.dll")] private static extern int SetWindowPos( IntPtr hwnd, int hWndInsertAfter, int x, int y, int cx, int cy, int wFlags); private void Start_Btn_Click(object sender, EventArgs e) {//始终显示在前面 SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 1); } private void button1_Click(object sender, EventArgs e) { //最小化始终显示在前面 SetWindowPos(this.Handle, -1, 0, 0, 0, 0, 0); } } } |
|