一 C# Winform 皮肤界面
<一> C#使用IrisSkin皮肤的例子
以下使用精简版的C#开发工具SharpDevelop; 如需下载和了解该精简版开发工具,可参考鄙人博文:
http://blog.csdn.net/bcbobo21cn/article/details/44200205
1 进入SharpDevelop,新建工程skin1, SharpDevelop添加第三方组件与标准VS略有不同;右击工具箱,在弹出菜单中选择Configure Sidebar;
2 在弹出的对话框中单击Add Components;
3 浏览并找到IrisSkin2.dll,单击Show Components,显示如下图内容;
4 工具箱中出现了两个新控件,SkinEngine,SkinCollectionItem;
5 做一个录入情报员资料的界面,如下;
为了简单,先不连接数据库,在代码中绑定ArrayList给DataGridView控件来显示示例数据;在form.cs中增加一个类如下;
public class qby{
private string bh= string.Empty;
public string 情报员编号
{
get { return bh; }
set { bh = value; }
}
private string name= string.Empty;
public string 情报员姓名
{
get { return name; }
set { name = value; }
}
private string rwrq= string.Empty;
public string 入伍日期
{
get { return rwrq; }
set { rwrq = value; }
}
private string jb= string.Empty;
public string 情报员级别
{
get { return jb; }
set { jb = value; }
}
}
在窗体启动时构造ArrayList对象,赋值后绑定到DataGridView;
qby q1=new qby();
q1.情报员编号="007";
q1.情报员姓名="周星星";
q1.入伍日期="1970-07-07";
q1.情报员级别="一级特务";
ArrayList alist1=new ArrayList();
alist1.Add(q1);
dataGridView1.DataSource=alist1;
在窗体上添加一个SkinEngine; 并在窗体启动时添加如下语句即可实现皮肤;
this.skinEngine1.SkinFile = @"D:\Users\Administrator\Documents\SharpDevelop Projects\skin1\res\皮肤\Steel\SteelBlue.ssk";
或者把皮肤文件拷贝到exe同一目录,添加如下语句;
this.skinEngine1.SkinFile = "SteelBlue.ssk";
皮肤文件SSK,根据自己的需要选择;
运行一下,结果如下图,如果情报部门使用如下界面录入信息,那也是满酷的;
示例源码下载:
http://pan.baidu.com/s/1kTBqCiN
此处仅为使用示例,请使用正版;
二 VC++的皮肤界面
<一>SkinSharp换肤库
1 SkinSharp的使用
打开VC++,新建一个对话框工程;
将换肤库头文件和链接库文件(SkinH.h, SkinH_lib)拷贝到工程的目录下,和源码文件同一目录;
在stdafx.h文件中添加如下两句;
#include "SkinH.h"
#pragma comment(lib, "SkinH.lib")
加到对话框实现文件的头部也可;
在对话框的OnInitDialog()函数中添加一句:
SkinH_Attach();
注意Skin,不要写成SKin,
编译后,拷贝换肤库dll和皮肤文件(skinh.dll, skinh.she)到程序生成的目录;
运行程序即看到如下效果;比标准的MFC对话框多了些颜色;
2 做一个获取系统信息的程序看下效果;
在对话框资源中添加一个文本框,一个Button;
在对话框头文件中添加一个函数声明;
CString GetID();
在对话框的实现函数中实现GetID()函数,并在Button1的单击命令中调用;
void CMyDlg::OnButton1()
{
m_infostr=GetID();
UpdateData(false);
}
CString CMyDlg::GetID()
{
CString infostr="";
CString str="";
///////////////////
//磁盘信息
char volname[255]={0};//盘卷标
char filename[100]={0};//buffer[512];
DWORD sno=0;//盘序列号
DWORD maxl,fileflag; // |盘符|
if((GetVolumeInformation("c:", volname,255,&sno,&maxl,&fileflag ,filename,100)))
{
str.Format("磁盘卷标:%x",sno);
infostr+=str;
}
return infostr;
}
按照1的步骤添加皮肤相关内容;运行程序,结果如下图;比无皮肤好看些;
源码下载:
http://pan.baidu.com/s/1eQ6bfCQ
此处仅为演示;请使用正版;