分享
 
 
 

一个Xp风格的表单类(一)

王朝other·作者佚名  2006-01-09
窄屏简体版  字體: |||超大  

其实是一个 无边框窗体,写成的表单类....但是外表看起来和普通的FORM完全一样.

呵呵. 最可惜的是,现在还没找到,在工具栏上放菜单的办法......哭....

下面是运行时候的图片..

我喜欢程序,更喜欢程序有个PL的界面....

但是网上似乎找不到详细的,关于此方面的教程或源码.

重绘时改用了双缓冲,在窗体上有动画的时候,重绘不会出现闪烁的现象了.

献丑一下,把源码贴出来,大家一起交流....

下面是引用,以及,声明的部分##########################################

using System;

using System.ComponentModel;

using System.Windows.Forms;

using System.Drawing;

using System.Drawing.Drawing2D;

using System.IO;

using System.Runtime.InteropServices;

namespace XpFormOfApc

{

/// <summary>

/// Form1 的摘要说明。

/// </summary>

public class XpForm : System.Windows.Forms.Form

{

public delegate void SysHandler(object sender,System.EventArgs e);

public event SysHandler SysDoubleClick;

//############API设置窗口STYLE#############

private const int GWL_STYLE = (-16);

private const int WS_SYSMENU = 0x80000;

private const int WS_SIZEBOX = 0x40000;

private const int WS_MAXIMIZEBOX = 0x10000;

private const int WS_MINIMIZEBOX=0x20000;

[System.Runtime.InteropServices.DllImport("user32", EntryPoint="SetWindowLong")]

private static extern int SetWindowLongA(int hwnd, int nIndex, int dwNewLong);

//###########普通组件定义#################

private System.ComponentModel.IContainer components;

private System.Windows.Forms.ImageList imglist;

private System.Windows.Forms.ImageList syslist;

//###############组件属性##################

//---系统按钮---

private bool Sys_Close_Visible=true;

private bool Sys_Max_Visible=true;

private bool Sys_Res_Visible=false;

private bool Sys_Min_Visible=true;

private bool Sys_Down_Visible=false;

private bool Sys_Up_Visible=true;

private bool Sys_Tray_Visible=true;

private bool IsShowInTray=false;

private int FormIconWidth=16;

private int FormIconHeight=16;

private const int ONE=23; //按钮宽21+2间隔

private int[,] SysCmd=new int[9,7]{

{1,0,7,0,6,21,21},

{1,1,8,0,6,21,21},

{0,2,9,0,6,21,21},

{1,3,10,0,6,21,21},

{0,4,11,0,6,21,21},

{1,5,12,0,6,21,21},

{1,6,13,0,6,21,21},

{10,5,12,0,0,21,21},

{11,5,12,32,0,0,30}

}; //10-FORM_ICON 11-FORM_TITLE

//---表单图标--托盘图标---

private NotifyIcon ni=new NotifyIcon();

private Icon TrayIcon;

private ContextMenu TrayContextMenu;

private string[] TrayToolTip;

private string TempTrayToolTip;

//public event SysOnDoubleClick (System.EventArgs e); //托盘图标双击事件

private Rectangle FormRect;//表单上一状态的RECT 用于Down还原

//允许拖拽标志 - 坐标

private bool CanMove=false;

private Point CurPoint=new Point(0,0);

private Point CurPoint2=new Point(0,0);

//

private int CanUp=0;

//====================================================

[DllImport("user32.dll")]

public static extern bool ReleaseCapture();

[DllImport("user32.dll")]

public static extern bool SendMessage(IntPtr hwnd,int wMsg,int wParam,int lParam);

private const int WM_SYSCOMMAND=0x0112;

private const int SC_MOVE=0xF010;

private const int HTCAPTION=0x0002;

private const int HTRIGHT=0x0011;

################ 下面是代码 ###############

public XpForm()

{

//

// Windows 窗体设计器支持所必需的

//

InitializeComponent();

//this.SetBounds(4,30,this.Width-8,this.Height-34);

//

// TOD 在 InitializeComponent 调用后添加任何构造函数代码

//

}

/// <summary>

/// 清理所有正在使用的资源。

/// </summary>

protected override void Dispose( bool disposing )

{

if( disposing )

{

if (components != null)

{

components.Dispose();

}

}

base.Dispose( disposing );

}

#region Windows 窗体设计器生成的代码

/// <summary>

/// 设计器支持所需的方法 - 不要使用代码编辑器修改

/// 此方法的内容。

/// </summary>

private void InitializeComponent()

{

this.components = new System.ComponentModel.Container();

System.Resources.ResourceManager resources = new System.Resources.ResourceManager(typeof(XpForm));

this.imglist = new System.Windows.Forms.ImageList(this.components);

this.syslist = new System.Windows.Forms.ImageList(this.components);

//

// imglist

//

this.imglist.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;

this.imglist.ImageSize = new System.Drawing.Size(50, 50);

this.imglist.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("imglist.ImageStream")));

this.imglist.TransparentColor = System.Drawing.Color.Black;

//

// syslist

//

this.syslist.ColorDepth = System.Windows.Forms.ColorDepth.Depth32Bit;

this.syslist.ImageSize = new System.Drawing.Size(21, 21);

this.syslist.ImageStream = ((System.Windows.Forms.ImageListStreamer)(resources.GetObject("syslist.ImageStream")));

this.syslist.TransparentColor = System.Drawing.Color.Transparent;

//

// XpForm

//

this.AutoScaleBaseSize = new System.Drawing.Size(6, 14);

this.ClientSize = new System.Drawing.Size(280, 136);

this.FormBorderStyle = System.Windows.Forms.FormBorderStyle.None;

this.Icon = ((System.Drawing.Icon)(resources.GetObject("$this.Icon")));

this.Name = "XpForm";

this.Text = "APC心灵空间";

}

#endregion

/// <summary>

/// 应用程序的主入口点。

/// </summary>

[STAThread]

static void Main()

{

//XpForm xf=new XpForm();

//xf.SysDoubleClick+=new SysHandler(xf.ni_DoubleClick);

Application.Run(new XpForm());

}

//######################### 自 定 函 数 ##############################

private void RePaint(bool ClearAll)

{

Graphics g=this.CreateGraphics();

if(ClearAll==true){g.Clear(Color.FromArgb(242,242,242));}

//画XP边框

g.DrawImage(imglist.Images[1],0,0,this.Width+50,30); //横幅

g.DrawImage(imglist.Images[0],0,0,6,30); //左角

g.DrawImage(imglist.Images[2],this.Width-6,0,6,30); //右角

g.DrawImage(imglist.Images[5],0,this.Height-4,this.Width+50,4);//下边

g.DrawImage(imglist.Images[3],0,7,4,this.Height); //左边

g.DrawImage(imglist.Images[4],this.Width-4,7,4,this.Height);//右边

//画图标

g.DrawImage((Image)this.Icon.ToBitmap(),new Rectangle(8,6,FormIconWidth,FormIconHeight));

//画标题

g.DrawString(this.Text,new Font("宋体",9,FontStyle.Bold),new SolidBrush(Color.White),32,10);

//计算..画按钮

InitSysCmd();

int SysIndex=1;

for(int i=0;i<=6;i++)

{

//if(SysVisible[i]==1)

if(SysCmd[i,0]==1)

{

g.DrawImage(syslist.Images[i],this.Width-ONE*SysIndex-6,6,21,21);

SysCmd[i,3]=this.Width-ONE*SysIndex-6; //记录各SysCmd的Rect.X

SysCmd[8,5]=this.Width-ONE*SysIndex-6; //标题栏拖拽的长度

SysIndex+=1;

}

}

g.Dispose();

}

private void RePaint()

{

Bitmap b=new Bitmap(this.Width,this.Height);

Graphics bmp=Graphics.FromImage((Image)b);

//Bitmap c=new Bitmap(100,100,this.CreateGraphics());

//g.Clear(this.BackColor);

//画XP边框

bmp.DrawImage(imglist.Images[1],0,0,this.Width+50,30); //横幅

bmp.DrawImage(imglist.Images[0],0,0,6,30); //左角

bmp.DrawImage(imglist.Images[2],this.Width-6,0,6,30); //右角

bmp.DrawImage(imglist.Images[5],0,this.Height-4,this.Width+50,4);//下边

bmp.DrawImage(imglist.Images[3],0,7,4,this.Height); //左边

bmp.DrawImage(imglist.Images[4],this.Width-4,7,4,this.Height);//右边

//画图标

bmp.DrawImage((Image)this.Icon.ToBitmap(),new Rectangle(8,6,FormIconWidth,FormIconHeight));

//画标题

bmp.DrawString(this.Text,new Font("宋体",9,FontStyle.Bold),new SolidBrush(Color.White),32,10);

//计算..画按钮

InitSysCmd();

int SysIndex=1;

for(int i=0;i<=6;i++)

{

//if(SysVisible[i]==1)

if(SysCmd[i,0]==1)

{

bmp.DrawImage(syslist.Images[i],this.Width-ONE*SysIndex-6,6,21,21);

SysCmd[i,3]=this.Width-ONE*SysIndex-6; //记录各SysCmd的Rect.X

SysCmd[8,5]=this.Width-ONE*SysIndex-6; //标题栏拖拽的长度

SysIndex+=1;

}

}

Graphics g=this.CreateGraphics();

g.DrawImage(b,0,0);

bmp.Dispose();

g.Dispose();

}

private void ReCreateRegion()

{

Rectangle r=Screen.GetWorkingArea(this);

Point[] p=new Point[]{

new Point(0,6),

new Point(1,4),

new Point(4,1),

new Point(6,0),

new Point(this.Width-6,0),

new Point(this.Width-4,1),

new Point(this.Width-1,4),

new Point(this.Width-1,5),

new Point(this.Width,this.Height),

new Point(0,this.Height)};

byte[] b=new byte[]{

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line,

(byte)PathPointType.Line};

System.Drawing.Drawing2D.GraphicsPath path=new GraphicsPath(p,b);

this.Region=new Region(path);

}

private void InitSysCmd()

{

if(Sys_Close_Visible==true){SysCmd[0,0]=1;}

else{SysCmd[0,0]=0;}

if(Sys_Max_Visible==true){SysCmd[1,0]=1;}

else{SysCmd[1,0]=0;}

if(Sys_Res_Visible==true){SysCmd[2,0]=1;}

else{SysCmd[2,0]=0;}

if(Sys_Min_Visible==true){SysCmd[3,0]=1;}

else{SysCmd[3,0]=0;}

if(Sys_Up_Visible==true){SysCmd[5,0]=1;}

else{SysCmd[5,0]=0;}

if(Sys_Down_Visible==true){SysCmd[4,0]=1;}

else{SysCmd[4,0]=0;}

if(Sys_Tray_Visible==true){SysCmd[6,0]=1;}

else{SysCmd[6,0]=0;}

}

private void DoClick(int i)

{

switch(i)

{

case 0://关闭

this.Close();

break;

case 1://最大化

this.WindowState=FormWindowState.Maximized;

break;

case 2://还原

this.WindowState=FormWindowState.Normal;

break;

case 3://最小化

this.WindowState=FormWindowState.Minimized;

break;

case 4://放下

this.Top=FormRect.Y;

this.Left=FormRect.X;

this.Width=FormRect.Width;

this.Height=FormRect.Height;

Sys_Down_Visible=false;

Sys_Up_Visible=true;

//this.RePaint();

break;

case 5://收起

FormRect=new Rectangle(this.Left,this.Top,this.Width,this.Height);

this.Height=30;

this.Top=0;

Sys_Up_Visible=false;

Sys_Down_Visible=true;

this.RePaint();

break;

case 6://缩入托盘

ni.Text=TempTrayToolTip;

ni.Icon=TrayIcon;

ni.ContextMenu=TrayContextMenu;

this.WindowState=FormWindowState.Minimized;

this.ShowInTaskbar=false;

this.Visible=false;

ni.Visible=true;

break;

}

}

private void ni_DoubleClick(object sender,System.EventArgs e)

{

OnSysDoubleClick(e);

if(ShowInTray==true)

{

ni.Visible=true;

}

}

void OnSysDoubleClick(System.EventArgs e)

{

if(this.Visible==true)

{

this.WindowState=FormWindowState.Minimized;

this.ShowInTaskbar=false;

this.Visible=false;

ni.Visible=true;

}

else

{

int mStyle=WS_SYSMENU;

if(Sys_Max_Visible==true){mStyle=mStyle|WS_MAXIMIZEBOX;}

if(Sys_Min_Visible==true){mStyle=mStyle|WS_MINIMIZEBOX;}

if(ShowInTray==false){ni.Visible=false;}

this.ShowInTaskbar=true;

this.WindowState=FormWindowState.Minimized;

int a=SetWindowLongA(this.Handle.ToInt32(),GWL_STYLE,mStyle);

this.Visible=true;

this.WindowState=FormWindowState.Normal;

}

}

#region __重 载 事 件___

//######################### 重 载 事 件 ###############################

protected override void OnLoad(System.EventArgs e)

{

int mStyle=WS_SYSMENU;

if(Sys_Max_Visible==true){mStyle=mStyle|WS_MAXIMIZEBOX;}

if(Sys_Min_Visible==true){mStyle=mStyle|WS_MINIMIZEBOX;}

int a=SetWindowLongA(this.Handle.ToInt32(),GWL_STYLE,mStyle);

if(IsShowInTray==true){ni.Icon=TrayIcon;ni.ContextMenu=TrayContextMenu;ni.Text=TempTrayToolTip;ni.Visible=true;}

this.ni.DoubleClick+=new System.EventHandler(this.ni_DoubleClick);

this.SetStyle(ControlStyles.DoubleBuffer|ControlStyles.ResizeRedraw|ControlStyles.ContainerControl,true);

}

protected override void OnPaint(System.Windows.Forms.PaintEventArgs e)

{

//base.OnPaint(e);

this.RePaint();

base.OnPaint(e);

//ee=e;

}

protected override void OnResize(System.EventArgs e)

{

Rectangle r=Screen.GetWorkingArea(this);

this.MaximumSize=new Size(r.Width,r.Height);

if(this.WindowState==FormWindowState.Maximized)

{

if(Sys_Max_Visible==true)

{

Sys_Max_Visible=false;

Sys_Res_Visible=true;

}

if(Sys_Up_Visible==true)

{

Sys_Up_Visible=false;

CanUp=1;

}

}

if(this.WindowState==FormWindowState.Normal)

{

if(Sys_Res_Visible==true)

{

Sys_Max_Visible=true;

Sys_Res_Visible=false;

}

if(CanUp==1)

{

Sys_Up_Visible=true;

CanUp=0;

}

}

this.RePaint();

//this.OnPaint(ee);

ReCreateRegion();

this.Refresh();

}

protected override void OnMouseMove(System.Windows.Forms.MouseEventArgs e)

{

if(CanMove==true)

{

//this.Cursor=Cursors.SizeAll;

//this.Top=Cursor.Position.Y-CurPoint.Y;

//this.Left=Cursor.Position.X-CurPoint.X;

if(CurPoint.X>SysCmd[8,3] && CurPoint.X<SysCmd[8,5] && CurPoint.Y<30 && (Sys_Res_Visible!=true ))

{

ReleaseCapture();

SendMessage(this.Handle,WM_SYSCOMMAND,SC_MOVE+HTCAPTION, 0);

}

}

Graphics g=this.CreateGraphics();

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

if(e.X>SysCmd[i,3] && e.X<SysCmd[i,3]+21 && e.Y>6 && e.Y<27)

{g.DrawImage(syslist.Images[SysCmd[i,2]],SysCmd[i,3],6,21,21);}

else{g.DrawImage(syslist.Images[SysCmd[i,1]],SysCmd[i,3],6,21,21);}

}

}

g.Dispose();

CurPoint2.X=Cursor.Position.X-this.Left;

CurPoint2.Y=Cursor.Position.Y-this.Top;

}

protected override void OnMouseDown(System.Windows.Forms.MouseEventArgs e)

{

if(e.Button==MouseButtons.Left && e.X>SysCmd[8,3] && e.X<SysCmd[8,5] && e.Y<30)

{

CanMove=true;

}

CurPoint.X=e.X;

CurPoint.Y=e.Y;

}

protected override void OnMouseUp(System.Windows.Forms.MouseEventArgs e)

{

//if(e.Button==MouseButtons.Left && e.X>SysCmd[8,3] && e.X<SysCmd[8,5] && e.Y<30)

//{

CanMove=false;

this.Cursor=Cursors.Default;

//}

}

protected override void OnClick(System.EventArgs e)

{

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

if(CurPoint.X>SysCmd[i,3] && CurPoint.X<SysCmd[i,3]+21 && CurPoint.Y>6 && CurPoint.Y<27)

{DoClick(i);}

else{}

}

}

}

protected override void OnDoubleClick(System.EventArgs e)

{

if(CurPoint.X>SysCmd[8,3] && CurPoint.X<SysCmd[8,5] && CurPoint.Y<30 && (Sys_Max_Visible==true||Sys_Res_Visible==true ))

{

if(this.WindowState==FormWindowState.Maximized)

{

this.WindowState=FormWindowState.Normal;

}

else

{

this.WindowState=FormWindowState.Maximized;

}

this.Cursor=Cursors.Default;

}

}

protected override void OnClosing(System.ComponentModel.CancelEventArgs e)

{

ni.Visible=false;

ni.Dispose();

}

protected override void OnTextChanged(System.EventArgs e)

{this.RePaint(false);}

//protected override void OnLayout(System.Windows.Forms.LayoutEventArgs e)

//{

//mmd,在这里一加事件,居然从TRAY里恢复窗口的时候,不从画子控件了..郁闷

//this.XpPanel.Location=new Point(4,30);

//this.XpPanel.Size=new Size(this.Width-8,this.Height-34);

//this.XpPanel.SendToBack();

//foreach(Control c in this.Controls)

//{

//c.Parent=this.XpPanel;

//}

//}

//protected override void OnControlAdded(System.Windows.Forms.ControlEventArgs ce)

//{

/* 这也不是什么根本的办法,,,,,自己用还中....

try

{

if(ce.Control.Parent==this && ce.Control.Name!=this.Name && ce.Control.Name!=this.XpPanel.Name)

{

ce.Control.Parent=this.XpPanel;

}

}

catch{}

*/

//}

/*

protected override void WndProc(ref Message m)

{

base.WndProc(ref m);

if (m.Msg == 0x0084 && CurPoint2.Y<=30 ) //WM_NCHITTEST

{

m.Result= (IntPtr)2; // HTCLIENT

this.Text=this.CurPoint2.Y.ToString();

return;

}

}*/

//protected override void OnActivated(System.EventArgs e)

//{

//}

//####################################################################

#endregion

#region 自 定 义 属 性

//####################### 自 定 义 属 性 #############################

[

Category("XpForm属性"),

Description("获取或设置窗体的关闭按钮是否可见.")

]

public bool Sys_Close_IsVisible

{

get{return Sys_Close_Visible;}

set

{

Sys_Close_Visible=value;

InitSysCmd();

int SysIndex=0;

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

SysIndex+=1;

}

}

this.Invalidate(new Rectangle(this.Width-6-ONE*SysIndex,6,6+ONE*SysIndex,21));

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体的最大化按钮是否可见.")

]

public bool Sys_Max_IsVisible

{

get{return Sys_Max_Visible;}

set

{

Sys_Max_Visible=value;

InitSysCmd();

int SysIndex=0;

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

SysIndex+=1;

}

}

this.Invalidate(new Rectangle(this.Width-6-ONE*SysIndex,6,6+ONE*SysIndex,21));

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体的最小化按钮是否可见.")

]

public bool Sys_Min_IsVisible

{

get{return Sys_Min_Visible;}

set

{

Sys_Min_Visible=value;

InitSysCmd();

int SysIndex=0;

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

SysIndex+=1;

}

}

this.Invalidate(new Rectangle(this.Width-6-ONE*SysIndex,6,6+ONE*SysIndex,21));

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体的收起(向上)按钮是否可见.")

]

public bool Sys_Up_IsVisible

{

get{return Sys_Up_Visible;}

set

{

Sys_Up_Visible=value;

InitSysCmd();

int SysIndex=0;

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

SysIndex+=1;

}

}

this.Invalidate(new Rectangle(this.Width-6-ONE*SysIndex,6,6+ONE*SysIndex,21));

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体的缩入托盘按钮是否可见.")

]

public bool Sys_Tray_IsVisible

{

get{return Sys_Tray_Visible;}

set

{

Sys_Tray_Visible=value;

InitSysCmd();

int SysIndex=0;

for(int i=0;i<=6;i++)

{

if(SysCmd[i,0]==1)

{

SysIndex+=1;

}

}

this.Invalidate(new Rectangle(this.Width-6-ONE*SysIndex,6,6+ONE*SysIndex,21));

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体在托盘区显示的图标.")

]

public Icon Sys_Icon

{

get{return TrayIcon;}

set{TrayIcon=value;ni.Icon=TrayIcon;}

}

[

Category("XpForm属性"),

Description("获取或设置窗体在托盘区的上下文菜单.")

]

public ContextMenu Sys_ContextMenu

{

get{return TrayContextMenu;}

set{TrayContextMenu=value;ni.ContextMenu=TrayContextMenu;}

}

[

Category("XpForm属性"),

Description("获取或设置当鼠标停留在托盘区图标上时的提示文字.")

]

public string Sys_ToolTip

{

get{return TempTrayToolTip;}

set{TempTrayToolTip=value;TrayToolTip=TempTrayToolTip.Split("\n".ToCharArray(),0);ni.Text=value;}

}

[

Category("XpForm属性"),

Description("多行编辑控件中的文本行,作为字符串值的数组.(用于设置多行ToolTip)")

]

public string[] Sys_ToolTip_Lines

{

get{return TrayToolTip;}

set

{

string[] a=value;

//TrayToolTip=value[0];

TempTrayToolTip="";

for(int i=0;i<=a.Length-1;i++)

{

TempTrayToolTip=TempTrayToolTip+a.GetValue(i).ToString();

if(i<a.Length-1)

{

TempTrayToolTip=TempTrayToolTip+"\n";

}

}

ni.Text=TempTrayToolTip;

TrayToolTip=value;

}

}

[

Category("XpForm属性"),

Description("获取或设置窗体刚启动时是否在托盘区显示.(需要先设置Sys_Icon属性.)")

]

public bool ShowInTray

{

get{return IsShowInTray;}

set

{

IsShowInTray=value;

if(!this.DesignMode)

{

ni.Icon=TrayIcon;

ni.ContextMenu=TrayContextMenu;

ni.Text=TempTrayToolTip;

ni.Visible=value;

}

}

}

[

Category("XpForm属性"),

Description("窗体图标的宽.)")

]

public int FormIcon_Width

{

get{return FormIconWidth;}

set

{

if(value>=FormIconWidth)

{

FormIconWidth=value;

this.Invalidate(new Rectangle(8,6,value,FormIconHeight));

}

else

{

int temp=FormIconWidth;

FormIconWidth=value;

this.Invalidate(new Rectangle(8,6,value,temp));

}

}

}

[

Category("XpForm属性"),

Description("窗体图标的高.)")

]

public int FormIcon_Height

{

get{return FormIconHeight;}

set

{

if(value>=FormIconHeight)

{

FormIconHeight=value;

this.Invalidate(new Rectangle(8,6,FormIconWidth,value));

}

else

{

int temp=FormIconHeight;

FormIconHeight=value;

this.Invalidate(new Rectangle(8,6,temp,value));

}

}

}

//####################################################################

#endregion

}

}

我把相关的部分,,都用几行来隔开了...

主要就是,自定义函数部分... 重载事件.部分.....自定义属性部分......

希望能对大家有所帮助.

我的QQ. 23559055

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有