图解CS版的皮肤界面编程示例
一 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
此处仅为演示;请使用正版;
图解CS版的皮肤界面编程示例相关推荐
- Windows界面编程-背景图片、透明特效使用
Windows界面编程第一篇 位图背景与位图画刷 可以通过WM_CTLCOLORDLG消息来设置对话框的背景,MSDN上对这个消息的说明如下: The WM_CTLCOLORDLG message i ...
- Muduo 网络编程示例之十:socks4a 代理服务器
Muduo 网络编程示例之十:socks4a 代理服务器 陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice t.sina.com.cn/giantchen ...
- php皮肤程序,2020修复升级版PHP全新皮肤界面点赞任务系统平台源码运营版,仿众人帮蚂蚁帮扶牛帮...
[温馨提示]源码包解压密码:www.youhutong.com 资源描述 2020修复升级版PHP全新皮肤界面点赞任务系统平台源码运营版,仿众人帮蚂蚁帮扶牛帮 测试环境: php5.6+apache2 ...
- VC界面设计(破解版skin++皮肤库使用)
VC界面设计(破解版skin++皮肤库使用) skin++可以使VC++等工具写的软件的界面很漂亮,但是试用版在运行时会跳出注册框,正式版又需要花钱,下面的这种方法将会使注册窗口不再跳出来. ...
- ncurse界面编程多线程示例
linux ncurses界面编程网上资料很多,这里不再详述,这里只给一个例子.该示例给出了一个左右跳动的字符串数组景象: //Compile: gcc -g ncurses_demo.c -o nc ...
- VC++界面编程之--使用分层窗口实现界面皮肤
使用分层界面来实现界面皮肤的好处是:可以保证图片边缘处理不失真,且能用于异形窗口上,如一些不规则的窗口,你很难用SetWindowRgn来达到理想效果. 在很多情况下,界面的漂亮与否,取决于PS的制作 ...
- 【Java AWT 图形界面编程】使用鼠标滚轮缩放 Canvas 画布中绘制的背景图像 ( 绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩放 + 以当前鼠标指针位置为缩放中心 示例 )
文章目录 一.鼠标滚轮缩放的中心点设置为当前鼠标中心点 - 要点分析 1.保存当前鼠标指针指向的位置 2.根据鼠标指针指向的位置以及比例重新计算图片位置 二.绘制超大图像 + 鼠标拖动 + 鼠标滚轮缩 ...
- Win32 API 多线程编程示例 - 窗口版
网上有一些Win32 多线程编程示例,多是控制台版本:下面哥作一个窗口版本: /*-------------------------------------------------bobo, 2020 ...
- Muduo 网络编程示例之三:定时器
陈硕 (giantchen_AT_gmail) Blog.csdn.net/Solstice 这是<Muduo 网络编程示例>系列的第三篇文章. Muduo 全系列文章列表: http:/ ...
最新文章
- 《大数据系统基础》实践项目期末答辩顺利举行 校企联手打造精品实践项目见真章
- 从美国5家创企看AI创业方向:落地解决问题才是王道
- 802.11成帧封装实现(四)
- Skype for Business Server 2015-10-ADFS-2-配置
- SQL注入学习——sqli-labs闯关(Basic Challenges)
- 小甲鱼python课件源代码_[Python基础] 小甲鱼零基础入门Python学习视频+全套源码课件 Python视频教程 96讲...
- mysql 字段 中文_如何配置mysql支持中文字段名与中文字段
- datatable筛选条件_C#利用DataView的RowFilter对DataTable进行查询筛选
- python切片原理_深度解析Python切片
- vue component created没有触发_面试!面试!面试!vue常见面试题。
- 云小课|DSC帮您管数据,保障您的云上数据安全
- HTML5 的定位一些重要知识点
- 通讯录_你有多久没翻过通讯录了?
- vue axois 封装请求 | vue 解决跨域问题
- Cadence之双击(DSN/brd)文件打开变新建文件的解决方法
- ligerui demo php,ligerui grid行编辑示例
- 《C语言入门经典》Ivor Horton第十章练习题3
- IS-IS LSDB详解(华为设备)
- electron开发问题记录
- centos7.9中mysql5.6数据库安装和配置以及修改端口
热门文章
- Hystrix 熔断器02 —— hystrix 案例之高并发测试
- 取消Ajax请求 || Ajax重复请求问题
- Use Simple Variables and Formulas
- 安装MySQL示例 docker pull mysql
- bugku ctf 域名解析
- 查找数据挖掘的相关资料
- 转载:sqlmap的应用实战
- JavaScript 技术篇-简单的两行js代码获取password不可见密码实例演示,js获取密码输入框里的值
- Windows 技术篇-搜狗输入法中文状态下却输入为英文,原因及解决办法。明明是中文却输入不了中文,只能输入英文
- stm32 systick定时器