﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>IT博客-心路历程</title><link>http://www.cnitblog.com/brpi/</link><description /><language>zh-cn</language><lastBuildDate>Wed, 06 May 2026 09:48:06 GMT</lastBuildDate><pubDate>Wed, 06 May 2026 09:48:06 GMT</pubDate><ttl>60</ttl><item><title>学习 ActiveSkin的使用</title><link>http://www.cnitblog.com/brpi/archive/2005/05/18/165.html</link><dc:creator>油黑面孔</dc:creator><author>油黑面孔</author><pubDate>Wed, 18 May 2005 15:18:00 GMT</pubDate><guid>http://www.cnitblog.com/brpi/archive/2005/05/18/165.html</guid><wfw:comment>http://www.cnitblog.com/brpi/comments/165.html</wfw:comment><comments>http://www.cnitblog.com/brpi/archive/2005/05/18/165.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cnitblog.com/brpi/comments/commentRss/165.html</wfw:commentRss><trackback:ping>http://www.cnitblog.com/brpi/services/trackbacks/165.html</trackback:ping><description><![CDATA[<P>一 / 学习 ActiveSkin的使用<BR>&nbsp;1。例程：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ActiveSkin 4.3 软件换肤在VC中的实现<BR>MFC基本对话框工程 UseActSkin:<BR>C:\Program Files\Microsoft Visual Studio\MyProjects\UseActSkin</P>
<P>&nbsp;1.1. 添加Active控件<BR>&nbsp;1.2. 在StdAfx.h中加入//目的是导入ActiveSkin的函数接口库。<BR>&nbsp;&nbsp;&nbsp; #include &lt;atlbase.h&gt;<BR>&nbsp;&nbsp;&nbsp; #import "actskn43.ocx" no_implementation raw_interfaces_only raw_native_types<BR>&nbsp;&nbsp;&nbsp; using namespace ACTIVESKINLib;<BR>1.3. 在Dlg.cpp文件里添加语句：&nbsp;&nbsp;&nbsp;&nbsp; <BR>CComQIPtr&lt;ISkin&gt; m_pSkin=GetDlgItem(IDC_SKIN)-&gt;GetControlUnknown();//m_pSkin是应用程序全局量。<BR>&nbsp;&nbsp;&nbsp; m_pSkin-&gt;LoadSkin(L"皮肤文件X的路径");//如果ActiveSkin控件中已有皮肤，此句可省略。<BR>&nbsp;&nbsp;&nbsp; m_pSkin-&gt;ApplySkin((int)m_hWnd);<BR>Q: 不知道加在哪<BR>尝试：a.在 BOOL CUseActSkinDlg::OnInitDialog() 中加入<BR>结论：Pass<BR>Q:m_pSkin-&gt;LoadSkin(L"皮肤文件X的路径");<BR>1.3.1去掉L则出现系统错误。<BR>1.3.2使用路径C:\Program Files\ActiveSkin 4.3\Skins\B-Studio.skn，则皮肤没有变化。路径中有空格，好像不行。将文件直接考到工作目录即可。</P>
<P>1.4 程序运行时更换皮肤。在对话框上建立一个Button，并添加Click事件：&nbsp;&nbsp;&nbsp; <BR>&nbsp;void CMy1Dlg::OnBNewSkin() <BR>&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; static char BASED_CODE szFilter[] = "ActiveSkin Files (*.skn)|*.skn||";//文件过滤器设置。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; CFileDialog dlg(FALSE, ".skn", NULL, OFN_HIDEREADONLY, szFilter);//Skin文件选择窗口。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; if (dlg.DoModal() == IDOK)//Skin文件选择成功：<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; USES_CONVERSION;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_pSkin-&gt;LoadSkin(T2W(dlg.GetPathName()));//载入指定的Skin文件。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; m_pSkin-&gt;ApplySkin((int)m_hWnd);//使当前Skin生效。<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; }<BR>&nbsp;&nbsp;&nbsp; } <BR>&nbsp; Q: 加入 CComQIPtr&lt;ISkin&gt; m_pSkin=GetDlgItem(IDC_SKIN)-&gt;GetControlUnknown();这句话方可。</P><img src ="http://www.cnitblog.com/brpi/aggbug/165.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cnitblog.com/brpi/" target="_blank">油黑面孔</a> 2005-05-18 23:18 <a href="http://www.cnitblog.com/brpi/archive/2005/05/18/165.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>