【C#】[窗体]字型窗体

2011012514353132.jpg

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;

namespace 字型窗体
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }


        [System.Runtime.InteropServices.DllImport("gdi32")]
        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;

        private void Form1_Load(object sender, EventArgs e)
        {
            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, "C#", 2);
            SelectObject(dc, m_OldFont);
            EndPath(dc);
            //结束记录窗体轮廓路径
            IntPtr m_wndRgn = PathToRegion(dc);
            //把所记录的路径转化为窗体轮廓句柄
            SetWindowRgn(this.Handle, m_wndRgn, true);
            //赋予窗体指定的轮廓形状
            this.BackColor = Color.Red;
            //设置窗体的背景颜色

        }
    }
}

源码下载:http://download.csdn.net/source/3001748

转载于:https://www.cnblogs.com/isaced/archive/2011/01/25/1944600.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值