叶帆工作室

嵌入式开发爱好者(十年开发经验,精通C/C++/VC/VB/C#...)

刘洪峰ID:yefanqiu
521340次访问,排名81好友0人,关注者169
微软MVP / CSDN 2008十大MVB/MSDN中文技术论坛版主
yefanqiu的文章
原创 216 篇
翻译 0 篇
转载 3 篇
评论 1088 篇
叶帆的公告
本博客原创文章,作者保留一切权利,需经作者同意后方可转载,转载时 请注明[叶帆工作室]及文章链接。yefan@vip.sina.com
【简介】叶帆[微软MVP]
【文章】叶帆文章列表
【软件】叶帆共享软件列表
最近评论
jacle169:峰哥, micro Framework3.0 beta出了,我已经装到vs08里了,但是你的sdk不能注册到vs08里,你帮帮忙改个vs08 里能用的sdk吧,谢谢.
赵广涛:高手帮帮忙,VB画有两个Y轴的曲线图怎么画?
sfweb2008:老兄:
你真厉害!
你有VB Api函数功能及用法详解吗?我有好多这方面的问题不是很明白!还请指教,谢谢!

我的邮箱xsdjxx@tom.com
xweil:谢谢你的推荐,享用受益中
changesway:很有收获!谢谢
文章分类
收藏
    相册
    叶帆照片
    【叶帆软件】
    [01]VB源码之友(V2.1.548)
    [02]API浏览器.net(V5.0)
    [03]叶帆成语词典(V2.0.8)
    [04]叶帆密码库(V1.2.8)
    【叶帆资源】
    DAO 2.0引擎
    叶帆快速通道
    Windows Embedded 专题
    中文MSDN
    叶帆圈子--工业自动化
    叶帆工作室(博客园)
    叶帆工控--工业自动化
    叶帆群组--工业应用开发
    微软中文技术论坛
    瑞康社区论坛
    叶帆友情链接
    张欣
    枕善居
    莫依
    葛涵涛
    郑建
    陈辉
    马宁
    马骐
    魏涛序
    黎波
    存档
    订阅我的博客
    XML聚合  FeedSky
    订阅到鲜果
    订阅到Google
    订阅到抓虾
    订阅到BlogLines
    订阅到Yahoo
    订阅到GouGou
    订阅到飞鸽
    订阅到Rojo
    订阅到newsgator
    订阅到netvibes

    原创 一个控件几行代码实现换肤(可支持菜单)收藏

    新一篇: 99年毕业设计获优的程序-图书管理程序 | 旧一篇: MFC串口操作(异步方式)源码

     这是从vbAccelerator(http://vbaccelerator.com)的皮肤程序修改而来,把DLL方式修改为OCX,并且修改为仅通过几行指令,即可完成皮肤加载。此外,不再需要SSubTmr6.dll的支持了,修改了原程序XML方式导入导出的Bug,加入了"Borders"字段,增加了异型窗体处理,新编写了皮肤制作程序。
       ‘皮肤示例代码
      Private Sub Form_Load()
           '初始化
           YFSkin1.SkinInit Me
           '加载制定的皮肤
           YFSkin1.SkinSelect 1
       End Sub
      
       皮肤图示: 
      
      
       制作皮肤工具图示:      

    发表于 @ 2006年04月12日 10:18:00|评论(loading...)|编辑

    新一篇: 99年毕业设计获优的程序-图书管理程序 | 旧一篇: MFC串口操作(异步方式)源码

    评论

    #kisssy 发表于2006-04-19 14:03:00  IP: 166.111.214.*
    很希望得到源码之友的注册。
    标识码:5732014473592508
    邮件:kissshenying@163.com
    关注你的Blog
    #请教 发表于2006-04-20 10:33:00  IP: 221.2.225.*
    前几天使用高手这个用的很好啊,昨天晚上装了系统后,就怎么都没有效果。就连直接运行下载程序中的VBSkinTest.exe
    都看不出界面的变化,整个窗口跟xp的一样。
    很想用高手的控件,望指教
    #叶帆 发表于2006-04-21 16:53:00  IP: 60.216.167.*
    不知道你的重装的什么系统,他需要如下支持,VB运行库,XML3.dll 等等,其它的就没有什么了
    #zjktxwd 发表于2006-04-24 22:55:00  IP: 220.167.173.*
    能免费使用吗?
    #叶帆 发表于2006-04-24 23:14:00  IP: 221.217.130.*
    完全免费
    #xufengyun 发表于2006-04-27 12:20:00  IP: 218.89.132.*
    你真的好棒啊!
    #wood 发表于2006-04-28 15:20:00  IP: 220.168.210.*
    想问问vbAccelerator(http://vbaccelerator.com)网站的系列控件是否稳定?

    几个主要的运行库是什么?

    因为最近也用到了vbAccelerator的控件做项目,但打包时总出现一些错误,感觉自己对这些控件还是了解不多啊。想请叶帆说说。

    先谢了
    #叶帆 发表于2006-04-29 16:33:00  IP: 221.217.156.*
    我感觉不是很好,相关的组件太多,并且有部分代码有问题,不稳定,就比如这个皮肤程序,其中就有部分代码有点问题。
    你不要直接用,最好自己修改一下!
    #情意良心知 发表于2006-05-09 09:47:00  IP: 219.149.28.*
    一个好人!如果需要点什么广告就发表!一定支持!
    #iamxiang 发表于2006-05-11 09:45:00  IP: 220.163.43.*
    这个链接地址下不了啊!
    能不能重新找个链接,或者在枕善居发布!
    #叶帆 发表于2006-05-11 16:43:00  IP: 221.217.152.*
    可以下载
    #andy 发表于2006-05-16 15:25:00  IP: 58.33.155.*
    首先感谢高手提供的控件!我在MDI窗体上使用了该控件后最大化,最小化和关闭按钮没有了是怎么回事啊?然后用在MDI子窗体上子窗体却不能显示出来!想请教下!
    #请问大大。你这个控件是免费的吗? 发表于2006-05-20 03:36:00  IP: 221.8.17.*
    **模 块 名:frmWork
    '**说 明:YFsoft 版权所有2004 - 2005(C)
    '**创 建 人:叶帆
    '**日 期:2004-10-07 17:34:45
    '**修 改 人:
    '**日 期:
    '**描 述:YFSkins Blog:http://blog.csdn.net/yefanqiu
    '**版 本:V1.0.2
    #叶帆 发表于2006-05-22 15:18:00  IP: 221.217.154.*
    完全免费

    to andy:对MDI支持不是很好
    #江湖小虾001 发表于2006-05-23 17:11:00  IP: 59.59.45.*
    TO 叶帆:
    你好叶大哥!本人刚刚从学校毕业出来,现在从事电子计量包装称技术开发。感觉困难很多,希望能给点建议指导(zxy11521@163.com)!
    我现在在做一个项目:PC与PLC(西门子S7-200)进行通信,(PLC还与1控制仪表通讯,已完成),现在碰到的难题就是如何用VB把PLC与仪表通信的内容保存的PC中(以数据库ACCESS)
    通信的内容有:产品代码,累积重量,累积包数.
    谢谢!
    #叶帆 发表于2006-05-24 13:19:00  IP: 221.217.152.*
    1、要把PLC的数据读到PC,读到PC就简单了,直接用ADO或DAO操作数据库,把读到的数据存储到PC即可。
    2、如果你不能把PLC的数据读到PC,你们公司可以购买我的PPI控件。
    #江湖小虾001 发表于2006-05-25 10:09:00  IP: 59.59.45.*
    好的!我先试看看。谢谢!!!
    #卞下 发表于2006-06-13 20:54:00  IP: 218.59.141.*
    大哥,看不到效果是怎么回事。
    #卞下 发表于2006-06-13 20:55:00  IP: 218.59.141.*
    大哥,看不到效果是怎么回事。
    #叶帆 发表于2006-06-16 11:14:00  IP: 221.217.132.*
    什么系统平台?
    #challenger 发表于2006-06-18 11:45:00  IP: 221.204.51.*
    这个控件怎么可以不改变菜单的样式,只改变窗体的样式呢?
    #CEAZAR 发表于2006-06-25 22:22:00  IP: 222.68.14.*
    请问为何它对MDI窗体没有任何反映
    #iokala 发表于2006-08-11 12:20:00  IP: 220.169.60.*
    这个控件是否开放源码??
    #blackcoffee 发表于2006-08-17 14:35:00  IP: 219.136.129.*
    真的挺不错的,谢谢你,呵呵。
    不过,我倒发现个问题呢,这个换肤控件只能显示3个菜单项。不知道这是你特意控制的还是你自己都没有发现呀。
    反正只能显示3个菜单项,使用起来挺不方便的,说一下怎么解决吗?谢谢!
    #叶帆 发表于2006-08-17 15:55:00  IP: 221.217.156.*
    可以添加多个(不过,主菜单下要有子项)

    我已经测试了,没有什么问题
    #dennis 发表于2006-11-19 11:02:00  IP: 222.172.140.*
    能不能也开放源码,让大伙学学。
    #dennis 发表于2006-11-19 11:08:00  IP: 222.172.140.*
    能不能也开放源码,让大伙学学。
    #xuyang0109 发表于2007-03-24 23:41:42  IP: 60.20.50.*
    SkinWork.exe有一点BUG。
    点击 NeoCaptionSkin 的节点,出现91号错误。看来是小问题。

    能让我们学学 VBSkinOcx.ocx 的源码吗? 这个和 YFSkins.ocx 不是一样的吧?
    #hongfong53 发表于2007-04-12 06:53:29  IP: 219.138.145.*
    请教:在VB中,换肤之后,程序运行的图标也跟着改了,程序图标能否改成自己的图标?怎么改?
    #yefanqiu 发表于2007-04-12 08:43:15  IP: 222.130.245.*
    直接修改相关贴图即可
    #hongfong53 发表于2007-04-12 09:17:55  IP: 219.138.145.*
    求助:你上面下载的皮肤文件每个目录下面只有两个位图文件。贴图文件在那里?从这个地方下http://www.bjjr.com.cn/yefan/yfskins.rar
    的控件有具体的小图片,但好像没有这上面下的好用,我是新手,具体应该怎么改程序标题的图片。(如:把蓝色天空的皮肤上的钥匙改为其它图标)
    #laviewpbt 发表于2007-04-12 12:10:48  IP: 61.187.64.*
    我想问下能不能公开菜单处理的那一快代码,我们经常异性窗体,但这个时候的如果窗体有菜单的话,就很难处理了,基本上就只有自己用label等控件模拟菜单,但我觉得你这个应该是用API处理的吧。

    还有,我想问下,我想做至只有一个EXE这样的绿色软件,也想用你这个OCX,那如何能够吧OCX直接整合到EXE中,到运行时在释放出来呢?
    #laviewpbt 发表于2007-04-12 12:15:50  IP: 61.187.64.*
    可惜还要带个皮肤的文件夹。顺便告诉我下这个在http://vbaccelerator.com的具体网址吧。
    #yefanqiu 发表于2007-04-13 20:45:19  IP: 221.217.142.*
    主要代码和http://vbaccelerator.com上的一样,我只是修改了一下,具体网址不清楚了。目前对VB编码少了,有些技术都不甚熟悉了,有时间整理整理VB代码,该发表的就发表了。
    #yxsylyh 发表于2007-07-26 12:59:45  IP: 202.118.255.*
    有趣啊,将鼠标停在程序界面的上边框,此时显示的鼠标图标是上下箭头。这时点鼠标左键并上下拖动,第一次是使窗体上移或下移;松开鼠标,再点一次并上下拖动,就是向上拉伸或向下收缩窗体。再点又是上下移动,再点又是上下拉缩,如此反复。
    #ioygylhj 发表于2007-08-27 20:55:35  IP: 219.159.229.*
    请问叶兄,我使用 新版皮肤控件 然后在网上下载磁性窗体的源码,和皮肤控件一起用,但是只有默认系统的皮肤可以吸附,换成其他皮肤就没有效果,应该怎么解决呢,本人刚学,还不怎么会改,谢谢了~~~~~~~~~~~
    #yefanqiu 发表于2007-08-27 21:29:02  IP: 221.217.150.*
    估计是距离的原因,皮肤把窗体的类型和边界做了处理。如果方面你把相关代码发给我,我有时间看看!
    #ioygylhj 发表于2007-08-28 18:19:06  IP: 222.218.69.*
    叶兄,我已经将源码发到:yefan@vip.sina.com
    我的E-MAIL:ioygylhj@sina.com
    #xiaoyelv 发表于2007-09-02 01:33:13  IP: 221.229.152.*
    您好,老大,我用您的VBSkinOcx.ocx控件,写了个程序,然后打包安装后,竟然皮肤菜单没有了,控件不能用。而且我在返回到您给的例子程序VBSkinTest.vbp F5调试也不能用这个皮肤控件,直接运行VBSkinTest.exe 也不能显示皮肤了。皮肤菜单为第一个为无,以下为空。我在系统重新注册ocx也不能用了。奇怪啊。我发现别的网友也有遇到我的情况,而且我计算机上有VB运行库,XML3.dll 同样不能用。而且我以前用过您的另外一个皮肤控件[016]界面皮肤(YFSkins)也出现过同样的情况。希望老大看下什么原因,如何解决。谢谢您。盼您回复。谢谢
    #xiaoyelv 发表于2007-09-02 01:43:44  IP: 221.229.152.*
    老大,我分析了下
    Dim strSkinMsg() As String
    Dim lngSkinNum As Long
    Dim i As Long

    '皮肤信息 添加到菜单(自动从"Skins"目录查找)
    lngSkinNum = YFSkin1.GetSkinInfo(strSkinMsg)
    If lngSkinNum > 16 Then lngSkinNum = 16
    For i = 0 To lngSkinNum - 1
    mnuView(i + 2).Caption = strSkinMsg(i)
    mnuView(i + 2).Visible = True
    Next
    '------------------------------------------
    '加载皮肤
    If lngSkinNum > 0 Then mnuView_Click 2

    我测试了下,感觉 应该是ocx里面一个过程没有处理好

    '皮肤信息 添加到菜单(自动从"Skins"目录查找)
    lngSkinNum = YFSkin1.GetSkinInfo(strSkinMsg)

    不知道什么原因,肯定是GetSkinInfo过程无法正确获取Skins目录下的皮肤个数,而不能正确加载皮肤造成的。
    希望老大就您的源码分析下。谢谢老大。您的这个控件确实很经典,我们很需要。希望您能完善下。谢谢
    #yefanqiu 发表于2007-09-02 11:52:52  IP: 221.217.159.*
    '这是查目录的源码,注意App.Path 目录是控件所在的目录,当然你可以执行该函数,重新设定皮肤的目录
    Public Function FindSkin(strSkinFile() As String, strSkin() As String, Optional strPath As String = "Null") As Long
    On Error GoTo ToExit '打开错误陷阱
    '------------------------------------------------
    Dim lngNum As Long
    Dim strFile As String

    If strPath = "Null" Or Len(strPath) = 0 Then
    strPath = App.Path & "\" & "Skins"
    strPath = Replace(strPath, "\\", "\")
    End If

    strFile = Dir(strPath & "\", vbDirectory)

    While strFile <> ""

    '是否目录
    If strFile <> "." And strFile <> ".." And (GetAttr(strPath & "\" & strFile) And vbDirectory) > 0 Then
    lngNum = lngNum + 1
    ReDim Preserve strSkinFile(lngNum - 1) As String
    ReDim Preserve strSkin(lngNum - 1) As String

    strSkinFile(lngNum - 1) = strPath & "\" & strFile
    strSkin(lngNum - 1) = GetXmlName(strSkinFile(lngNum - 1) & "\skin.xml")

    End If
    strFile = Dir()
    Wend

    FindSkin = lngNum

    '------------------------------------------------

    Exit Function

    '----------------
    ToExit:
    FindSkin = 0
    End Function
    #yefanqiu 发表于2007-09-02 12:09:17  IP: 221.217.159.*
    不好意思,不能重新设定目录,因为有效的strSkinFile目录是私有变量,所以你要关注实际注册的皮肤控件和Skins目录的关系。
    #xiaoyelv 发表于2007-09-02 13:43:43  IP: 221.229.153.*
    哦。谢谢老大,我已经搞定了。顺便说下。希望遇到此类情况的兄弟们有个参考,就是 Skins 皮肤目录和VBSkinOcx.ocx皮肤控件应该在同一级目录,而VBSkinOcx.ocx也应该在此目录情况下注册到系统。我原来的错误是把皮肤控件放到系统目录,而Skins 皮肤目录却放到程序安装目录。应该把他们放到一起就ok了。谢谢老大
    #ioygylhj 发表于2007-09-18 23:02:51  IP: 124.226.177.*
    叶兄,子窗体加载皮肤后标题栏下有一行空白,原来在主窗体是设置菜单那行,如何取消,或是把自己的内容定位在上面呢,比如某个按钮,现在急需这个方法,谢谢了!

    还有一个问题,就是主窗体改变样式后,子窗体如何同时改变样式呢,现在不是能同步...
    #lch9906 发表于2008-01-17 15:59:09  IP: 61.189.162.*
    老叶哥!我的问题同楼上一致!
    2008-01-21 15:29:58作者回复
    1、是存在这方面的问题,等有时间再修改一下吧。<br />2、示例程序中有相关代码
    #king2003 发表于2008-02-16 10:20:43  IP: 58.31.102.*
    大哥这个控件源码在哪里呀??谢谢了
    发表评论  


    登录
    Csdn Blog version 3.1a
    Copyright © 叶帆