c#怎样修改窗体外表? 我是用Microsoft Visual Studio 2005做的
c#怎样修改窗体外表?我是用MicrosoftVisualStudio2005做的还有怎样放gif让它能显示动态动呢?例如这样...
c#怎样修改窗体外表? 我是用Microsoft Visual Studio 2005做的
还有怎样放gif让它能显示动态动呢?
例如这样 展开
还有怎样放gif让它能显示动态动呢?
例如这样 展开
3个回答
展开全部
不建议用第三方皮肤控件
要做成QQ那样的话可以自己重画
不过有一点难度
1.就是Paint事件只能重画客户区,不能画控制条和边框
2.把他们隐藏又不能满足托动和通过鼠标改变窗体大小的要求。
解决方法:
1.把边框隐藏,重画客户区容易,不用说了,关键是托动和改变大小的效果,用一般的处理方法直接改变会使的效率低,而且肯定不是楼主想要的,这就要考虑下系统已提供的方法,由于控制条和边框已隐藏,所以要用API函数来骗,
这里我写一个托动,其它也类似
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
这两个是用到的API函数
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();//首先释放鼠标焦点捕获
SendMessage(this.Handle, 0x0112, 0xF011, 0);//然后向当前窗体发送控制条被按下并移动的消息
}
2.重画非客户区
[DllImport("user32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
IntPtr vHandle = GetWindowDC(this.Handle);
//这里就获得了一个Graphics类对象然后可以像画客户区一样再上面画画了
Graphics vGraphics = Graphics.FromHdc(vHandle);
时间关系,只写了大至思路,具体算法还要楼主自己想想
要做成QQ那样的话可以自己重画
不过有一点难度
1.就是Paint事件只能重画客户区,不能画控制条和边框
2.把他们隐藏又不能满足托动和通过鼠标改变窗体大小的要求。
解决方法:
1.把边框隐藏,重画客户区容易,不用说了,关键是托动和改变大小的效果,用一般的处理方法直接改变会使的效率低,而且肯定不是楼主想要的,这就要考虑下系统已提供的方法,由于控制条和边框已隐藏,所以要用API函数来骗,
这里我写一个托动,其它也类似
[DllImport("user32.dll")]
public static extern bool ReleaseCapture();
[DllImport("user32.dll")]
public static extern bool SendMessage(IntPtr hwnd, int wMsg, int wParam, int lParam);
这两个是用到的API函数
private void Form1_MouseDown(object sender, MouseEventArgs e)
{
ReleaseCapture();//首先释放鼠标焦点捕获
SendMessage(this.Handle, 0x0112, 0xF011, 0);//然后向当前窗体发送控制条被按下并移动的消息
}
2.重画非客户区
[DllImport("user32.dll")]
private static extern IntPtr GetWindowDC(IntPtr hWnd);
[DllImport("user32.dll")]
private static extern int ReleaseDC(IntPtr hWnd, IntPtr hDC);
IntPtr vHandle = GetWindowDC(this.Handle);
//这里就获得了一个Graphics类对象然后可以像画客户区一样再上面画画了
Graphics vGraphics = Graphics.FromHdc(vHandle);
时间关系,只写了大至思路,具体算法还要楼主自己想想
展开全部
修改窗体去百度的C#吧里面看,这里也说不清楚,用picturebox能让gif显示动态
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
1.使用第三方换肤控件,baidu一下下载一个(本人不是很喜欢)
2.重绘窗体,虽然很麻烦,但是写过一次可循环使用,此方法本人一直在使用
至于显示动态的GIF,你可以去csdn上找一下,解决方法有很多。
2.重绘窗体,虽然很麻烦,但是写过一次可循环使用,此方法本人一直在使用
至于显示动态的GIF,你可以去csdn上找一下,解决方法有很多。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询