c#winform - textbox控件添加背景图片
2011-11-08 13:03
459 查看
===========================从textbox类继承处理绘制背景消息==================== class MyTextBox : TextBox { const int WM_ERASEBKGND = 0x0014; private Image backImage; [DisplayName("背景图片。")] public Image BackImage { get { return backImage; } set { backImage = value; } } protected void OnEraseBkgnd(Graphics gs) { gs.FillRectangle(Brushes.White, 0, 0, this.Width, this.Height); //填充为白色,防止图片太小出现重影 if (backImage != null) gs.DrawImage(backImage, 0, 0); //绘制背景。 gs.Dispose(); } protected override void WndProc(ref Message m) { if (m.Msg == WM_ERASEBKGND) //绘制背景 { OnEraseBkgnd(Graphics.FromHdc(m.WParam)); m.Result = (IntPtr)1; } base.WndProc(ref m); } } ==================窗口类里设置控件的字体颜色等============================= const int WM_CTLCOLOREDIT = 0x0133; const int TRANSPARENT = 0x1; const int NULL_BRUSH = 0x5; [DllImport("gdi32")] static extern int SetBkMode(IntPtr hdc, int bkMode); [DllImport("gdi32")] static extern int SetTextColor(IntPtr hdc, int color); [DllImport("gdi32")] static extern IntPtr GetStockObject(int fnobject); protected override void WndProc(ref Message m) { if (m.Msg == WM_CTLCOLOREDIT && m.LParam == myTextBox1.Handle)//类型为EDIT(TextBox) { SetBkMode(m.WParam, TRANSPARENT);//设置背景透明 SetTextColor(m.WParam,0xFF); //字体颜色为红色 m.Result = GetStockObject(NULL_BRUSH); return; } else base.WndProc(ref m); }
相关文章推荐
- C#(winform)为button添加背景图片
- C#(winform)为button添加背景图片,并去掉各种边框
- C#(winform)为button添加背景图片
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- C#怎么给PDF添加背景图片
- C# 如何添加PPT背景(纯色背景、渐变色背景、图片背景)
- C#发现之旅: WinForm.NET中开发具有固定背景图片的可滚动控件
- c#WINFORM中如何为动态生成的按钮加背景图片
- c#WINFORM中如何为动态生成的按钮加背景图片
- C# 给PDF添加图片背景
- c# winform背景图片超过屏幕分辨率怎么办
- textbox在c#中怎么添加背景图片
- Winform背景图片添加与图片大小自适应
- (Winform)控件中添加GIF图片以及运用双缓冲使其不闪烁以及背景是gif时使控件(如panel)变透明
- C# 给PDF添加图片背景
- c#中怎样给textbox添加背景图片
- C#发现之旅 --- WinForm.NET中开发具有固定背景图片的可滚动控件
- c#WINFORM中如何为动态生成的按钮加背景图片
- C#实现PDF文件添加图片背景
- C# WinForm 添加等待界面 利用Gif图片实现