使用Visual C#制作可伸缩个性化窗体_多百多度_百度空间
在VB,VC中如何定制可伸缩个性化窗口早就不是什么秘密了,已经有了大量相关的文章进行介绍,无非都是如何调用系统API之类的方法,但是在.Net中调用API却相对比较麻烦,所以使用.Net制作个性化窗体的文章也有一些,一般都是使用透明背景加图片的方式,所以不能移动或者不能任意放大缩小窗体。那有没有不需要调用系统API的方法来实现可伸缩的个性化窗体的办法呢?当然有,.Net Framework提供了一套非常强大的系统类库,我们下面就要做一个使用"纯".Net打造的可伸缩个性化窗体。
[转]使用Visual <wbr>C#制作可伸缩个性化窗体
根据方位,将图片各部分命名为:Bottom_Left,Bottom_Middle,Bottom_Right,Middle_Left,Middle_Right,Top_Left,Top_Middle,Top_Right,SysButton_Min,SysButton_Max,SysButton_Close,SysButton_Restore等。注意,有些图片是可以伸缩的地方,比如Middle_Left,Bottom_Middle等处的图片可以只是一小块,以后需要进行重复贴图。而有些固定大小的图片,比如Bottom_Left,Top_Left等以后只用贴一次,实际应用的时候要注意区分。
[转]使用Visual <wbr>C#制作可伸缩个性化窗体
[转]使用Visual <wbr>C#制作可伸缩个性化窗体
private void DrawMiddle_Left(Graphics g) { Brush brush = new TextureBrush(Middle_Left, new Rectangle(0, 0, Middle_Left.Width, Middle_Left.Height)); g.FillRectangle(brush, 0, TITLE_WIDTH, Middle_Left.Width, Height - Bottom_Middle.Height - TITLE_WIDTH); }
[转]使用Visual <wbr>C#制作可伸缩个性化窗体
public class MouseDrag : MouseAction { private int x, y; public MouseDrag(int hitX, int hitY) { x = hitX; y = hitY; } public override void Action(int ScreenX, int ScreenY, System.Windows.Forms.Form form) { form.Location = new Point(ScreenX - x, ScreenY - y); } }
private void Form_MouseMove(object sender, System.Windows.Forms.MouseEventArgs e) { this.Parent.Cursor = CheckCursorType(e.X, e.Y);//改变鼠标的指针形状 if(mouse != null) { mouse.Action(Control.MousePosition.X, Control.MousePosition.Y, this);//执行时间响应 //注意坐标是Control.MousePosition这个静态变量给出的,它的值为鼠标在桌面上的全局坐标 } }
private Cursor CheckCursorType(int X, int Y) { if(((X <= LEFT + 10 && Y <= TOP) || (Y <= TOP + 10 && X <= LEFT)) || ((X >= Width - RIGHT - 10 && Y >= Height - BOTTOM) || (Y >= Height - BOTTOM - 10 && X >= Width - RIGHT))) { return Cursors.SizeNWSE; } else if(((Y <= TOP + 10 && X >= Width - RIGHT) || (Y <= TOP && X >= Width - RIGHT - 10)) || ((X <= LEFT && Y >= Height - BOTTOM - 10) || (Y >= Height - BOTTOM && X <= LEFT + 10))) { return Cursors.SizeNESW; } else if(X >= Width - RIGHT || X <= LEFT) { return Cursors.SizeWE; } else if(Y >= Height - BOTTOM || Y <= TOP) { return Cursors.SizeNS; } else { return Cursors.Arrow; } }
private void Form_DoubleClick(object sender, System.EventArgs e) { if(y > TOP && y < TITLE_WIDTH) { if(WindowState == FormWindowState.Normal) { WindowState = FormWindowState.Maximized; SysButton = SysButton_Restore; Invalidate(); } else if(WindowState == FormWindowState.Maximized) { WindowState = FormWindowState.Normal; SysButton = SysButton_Max; Invalidate(); } } }


郑重声明:资讯 【使用Visual C#制作可伸缩个性化窗体_多百多度_百度空间】由 发布,版权归原作者及其所在单位,其原创性以及文中陈述文字和内容未经(企业库qiyeku.com)证实,请读者仅作参考,并请自行核实相关内容。若本文有侵犯到您的版权, 请你提供相关证明及申请并与我们联系(qiyeku # qq.com)或【在线投诉】,我们审核后将会尽快处理。
—— 相关资讯 ——