手机
当前位置:查字典教程网 >网页设计 >应用技巧 >Visual Style中的shellstyle.dll文件修改方法
Visual Style中的shellstyle.dll文件修改方法
摘要:VisualStyle中的shellstyle.dll文件修改2007-3-811:25:00作者:Silencershellstyle.d...

VisualStyle中的shellstyle.dll文件修改

2007-3-811:25:00

作者:Silencer

shellstyle.dll修改*部分内容参考自whistl3r的ShellstyleTutorial

预备知识

1.shellstyle.dll的结构

UIFiles:

UIFile1:定义窗体及任务列表样式

UIFile2:定义控制面板样式

Resources:资源文件列表

10,11,12:音乐文件夹

13,14,15:图片文件夹

16,17,18:查找

19,20,21:视频文件夹

22,26:控制面板

25:系统文件夹

100,101,102,103,104,105,106,107:面板打开/关闭按钮

110,112:面板顶栏

120:背景

Strings:定义常用字符串或数值(字体,字号)

CPWEBVW.CSS:定义用户帐户窗体样式

2.资源的使用

rcstr(Str_ID)

Str_ID:Strings中编号

rcbmp(BMP_ID,STRETCHING,TRANSPARENT_COLOR,WIDTH,HEIGHT,SIZE_FLAG,MIRROR)

BMP_ID:Resources中编号

STRETCHING:填充方式1=正常,3,=重复,6=拉伸,7=32bit位图

TRANSPARENT_COLOR:填充时忽略的颜色#RRGGBB

WIDTH,HEIGHT:宽度,高度

SIZE_FLAG:图像大小1=使用图片默认大小,0=使用指定的大小

MIRROR:反转0=正常,1=反转

rcint(Str_ID)//将字符串转为数值

Str_ID:Strings中编号

Dtb(handlemap(a),b,c)//猜测是一种获取当前主题中图像的方法,但a,b,c各值所代表的图像不是很明确

sysmetric(ID)//系统变量表

ID可取值:

0Screenwidth

1Screenheight

2Widthofsizablewindowframe

3Heightofsizablewindowframe

4Widthofscrollarrowsonverticalscrollbar

5Heightofscrollarrowsonverticalscrollbar

6Widthofscrollarrowsonhorizontalscrollbar

7Heightofscrollarrowsonhorizontalscrollbar

8Heightofwindowtitle

9Widthofnon-sizablewindowframe

10Heightofnon-sizablewindowframe

11WidthofDOUBLEorPANELwindowframe

12HeightofDOUBLEorPANELwindowframe

13Scrollboxwidthonhorizontalscrollbarintexteditingwindows

14Scrollboxheightonverticalscrollbarintexteditingwindows

15Minimizedwindowiconwidth

16Minimizedwindowiconheight

17Maximuminsertionpointwidth

18Maximuminsertionpointheight

19Single-linemenubarheight

20Maximizedwindowwidth

21Maximizedwindowheight

22Kanjiwindowheight

23Minimumsizablewindowwidth

24Minimumsizablewindowheight

25Minimumwindowwidth

26Minimumwindowheight

27Windowcontrolswidth

28Windowcontrolsheight

291ifmousehardwarepresent;otherwise0

301forMicrosoftWindowsdebuggingversion;otherwise0

311ifmousebuttonsswapped;otherwise0

32Widthofabuttoninahalf-captionwindow'scaptionortitlebar

33Heightofhalf-captionwindowcaptionarea

核心部分

UIFile的编写

UIFile中的内容是许多结构为

<styleresid=***>

...

Element[id=atom(*****)]

{...}

Element[id=atom(*****)]

{...}

...

...

</style>

的代码段,用于定义特定部分的样式及其内部元素的样式

其中可包含的属性有

contentalign://元素位置。可有以下值

top:topleft,topright,topcenter

middle:middleleft,middleright,middlecenter

bottom:bottomleft,bottomright,bottomcenter

wrap:wrapleft,wrapright,wrapcenter//只可用于文本

background://背景颜色

foreground://前景颜色

bordercolor://边界颜色这3个属性可有以下值

rgb(red,green,blue)//RGB颜色

argb(alpha,red,green,blue)//包含alpha通道

gradient(argb(alpha,red,green,blue),argb(alpha,red,green,blue),Direction)//渐变色,第1个颜色变量为左上,第2个右下Driection:方向0=水平,1=垂直

black,white,red,green,blue,...//直接描述

window,windowtext,buttonface,buttonshadow,buttonlight,buttontext,scrollbar,hotlight,activecaption,captiontext...//系统颜色

fontsize://字号

使用Strings表中值

fontface://字体

使用Strings表中值

fontstyle://字体样式

使用normal,bold,italic,underline等制

borderthickness:rect(left,top,right,bottom);//边框宽度

margin:rect(left,top,right,bottom);//缩放时保持不变的边缘宽度

padding:rect(left,top,right,bottom);//元素位置

以XP默认主题Luna的UIFile1为例

<styleresid=main>//主窗体

DUIListView[id=atom(listview)]//列表浏览

{

contentalign:middlecenter;

fontsize:sysmetric(-16);//sysmetric是系统变量表,对应的变量类型见前表

fontweight:sysmetric(-17);

fontstyle:sysmetric(-18);

fontface:sysmetricstr(6);

}

DUIAxHost[id=atom(preview)]//幻灯片浏览

{

contentalign:middlecenter;

borderthickness:rect(20rp,20rp,20rp,20rp);

bordercolor:rgb(255,0,0);

}

Element

{

background:argb(0,0,0,0);

}

Element[id=atom(blockade)]//系统文件夹

{

background:rgb(99,117,214);

borderthickness:rect(0rp,0rp,1rp,1rp);

bordercolor:white;

}

Element[id=atom(blockadeaccent)]//主窗口与侧边栏间的分割线

{

background:gradient(argb(0,148,187,255),argb(0,99,117,214),1);

}

Element[id=atom(blockadeclient)]//系统文件夹背景图片

{

contentalign:bottomright;

padding:rect(10rp,0rp,0rp,0rp);

}

Element[id=atom(blockadetitle)]//标题("这些文件是隐藏的")

{

fontface:rcstr(2);

fontsize:rcint(18)pt;

fontweight:rcint(11);

foreground:rgb(214,223,245);

background:argb(0,0,0,0);

padding:rect(0rp,20rp,10rp,0rp);

contentalign:wrapleft;

}

Element[id=atom(blockademessage)]//标题("此文件夹包含使您系统...")

{

fontface:rcstr(2);

fontsize:rcint(17)pt;

fontweight:rcint(12);

foreground:white;

background:argb(0,0,0,0);

padding:rect(1rp,15rp,10rp,0rp);

contentalign:wrapleft;

}

Element[id=atom(blockadeclear)]//"显示此文件夹内容"一般状态

{

margin:rect(0rp,20rp,0rp,0rp);

}

Button[id=atom(blockadeclearbutton)][keyfocused]//"显示此文件夹内容"键盘触发

{

contentalign:focusrect;

}

Element[id=atom(blockadecleartext)]

{

fontface:rcstr(1);

fontsize:rcint(15)pt;

fontweight:rcint(10);

foreground:white;

background:argb(0,0,0,0);

contentalign:wrapleft;

padding:rect(3rp,0rp,0rp,0rp);

}

Element[id=atom(blockadecleartext)][mousefocused]//"显示此文件夹内容"鼠标触发

{

cursor:hand;

fontstyle:underline;

}

</style>

//以下各块中元素不再赘述,功能请参阅whistl3r的ShellstyleTutorial

<styleresid=mainsectionss>

<styleresid=mainsectiontaskss>

<styleresid=sectionss>

<styleresid=sectiontaskss>

<styleresid=taskpane>

<styleresid=NameSpaceItemInfoList>

【Visual Style中的shellstyle.dll文件修改方法】相关文章:

如何修改 mac地址的方法

处理 SSI 文件时出错的解决方法

cos-html-cache关于WordPress的静态化方法

vista hosts修改问题解决

文件系统变为raw 无法访问的解决方法

Office Word九条常用技巧

打开扩展名为ac.$的AutoCAD的临时文件的方法

rundll32.exe命令使用大法

破解WINDOWSXP/2000/2003登录密码/去掉登录密码/重设登录密码的方法总结

修改系统DLL文件实现禁用的方法

精品推荐
分类导航