VerySource

 找回密码
 立即注册
搜索
热搜: 活动 交友 discuz
12
返回列表 发新帖
楼主: avenueqq

C#重绘控件时:怎样去掉FROM\BUTTON控件的所有背景颜色???急急急!!!

[复制链接]

3

主题

11

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
 楼主| 发表于 2020-1-22 17:54:01 | 显示全部楼层
[DllImport ("User32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hwnd);
[DllImport ("User32.dll")]
private static extern int ReleaseDC(IntPtr hwnd, IntPtr hdc);
[DllImport ("Kernel32.dll")]
private static extern int GetLastError();

protected override void WndProc(ref Message m)
{
base.WndProc(ref m);
switch(m.Msg)
{
case 0x86://WM_NCACTIVATE
goto case 0x85;
case 0x85://WM_NCPAINT
{
IntPtr hDC = GetWindowDC(m.HWnd);
Graphics gs = Graphics.FromHdc(hDC);
Rectangle m_rect = new Rectangle(0, 0, 300, 300);
gs.FillRectangle(new LinearGradientBrush(m_ret, Color.Pink, Color.Pink, LinearGradientMode.BackwardDiagonal), m_rect);
StringFormat strFmt = new StringFormat();
strFmt.Alignment = StringAlignment.Center;
strFmt.LineAlignment = StringAlignment.Center;
gs.DrawString("√", this.Font, Brushes.BlanchedAlmond, m_rect, strFmt);
gs.Dispose();
//释放GDI资源
ReleaseDC(m.HWnd, hDC);
break;
}
}

我的代码大概就系这样。。你们可以试试看看。我只是想去掉原来的颜色。。。。
回复

使用道具 举报

0

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-30 09:15:01 | 显示全部楼层
在重会时可以重写它的方法来实现
回复

使用道具 举报

0

主题

10

帖子

6.00

积分

新手上路

Rank: 1

积分
6.00
发表于 2020-7-30 09:30:01 | 显示全部楼层
继续关注
回复

使用道具 举报

3

主题

11

帖子

12.00

积分

新手上路

Rank: 1

积分
12.00
 楼主| 发表于 2020-8-3 00:30:01 | 显示全部楼层
这个我知道...

我知道!在窗体打开MessageBox的时候,系统Message的值是31(0x001F),可是我不知道怎么对这个值进行处理。。。

请问您们有没有这方面的经验?请说一说您们的想法或提供源码。谢。。。
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|CopyRight © 2008-2023|verysource.com ( 京ICP备17048824号-1 )

快速回复 返回顶部 返回列表