[C#] 纯文本查看 复制代码
private static extern IntPtr CreateFont(int H, int W, int E, int O, int FW, int I, int u, int S, int C, int OP, int CP, int Q, int PAF, string F);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr GetDC(IntPtr hwnd);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern IntPtr BeginPath(IntPtr hdc);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern IntPtr EndPath(IntPtr hdc);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern IntPtr PathToRegion(IntPtr hdc);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern int SetBkMode(IntPtr hdc, int nBkMode);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern IntPtr SelectObject(IntPtr hdc, IntPtr hObject);
[System.Runtime.InteropServices.DllImport("gdi32")]
private static extern int TextOut(IntPtr hdc, int x, int y, string lpString, int nCount);
[System.Runtime.InteropServices.DllImport("user32")]
private static extern IntPtr SetWindowRgn(IntPtr hwnd, IntPtr hRgn, bool bRedraw);
const int FW_HEAVY = 900;
const int ANSI_CHARSET = 0;
const int OUT_DEFAULT_PRECIS = 0;
const int CLIP_DEFAULT_PRECIS = 0;
const int DEFAULT_QUALITY = 0;
const int DEFAULT_PITCH = 0;
const int FF_SWISS = 32;
const int TRANSPARENT = 1;
void UpdateUI()
{
IntPtr dc = GetDC(this.Handle);
IntPtr m_Font = CreateFont(200, 100, 0, 0, FW_HEAVY, 1, 0,
0, ANSI_CHARSET, OUT_DEFAULT_PRECIS,
CLIP_DEFAULT_PRECIS, DEFAULT_QUALITY,
DEFAULT_PITCH | FF_SWISS, "华文行楷");
//创建字体
BeginPath(dc);
//开始记录窗体轮廓路径
SetBkMode(dc, TRANSPARENT);
//设置背景为透明模式,这是必须有的
IntPtr m_OldFont = SelectObject(dc, m_Font);
TextOut(dc, 0, 0, "走的时候", 8);
SelectObject(dc, m_OldFont);
EndPath(dc);
//结束记录窗体轮廓路径
IntPtr m_wndRgn = PathToRegion(dc);
//把所记录的路径转化为窗体轮廓句柄
SetWindowRgn(this.Handle, m_wndRgn, true);
//赋予窗体指定的轮廓形状
this.BackColor = Color.Red;
//设置窗体的背景颜色
}