远景论坛积分规则、等级制度说明远景服务 - 免费开通您的远景博客远景论坛 - 美化区Q&A 移动主站 电信镜像 网通镜像
展望Windows7 关注Win7X.Com赞助远景,在远景网站上刊登广告iPhone 权威中文论坛-WeiPhone注册@pcbeta.com邮箱 邮箱登陆
远景论坛论坛版主联合招募Plus计划看电影,就用快乐影音!远景招募首席美工设计师 详情请进远景论坛制度章程(200810)
 62 1234
发新话题
打印

转 【教程】告诉你常见任务的位置如何设定(2种方法)

本主题由 天使的尘埃 于 2008-9-17 20:28 设置高亮

转 【教程】告诉你常见任务的位置如何设定(2种方法)

论坛现在有人讨论如何修改常见任务栏的位置了.这里就把我的发现和大家分享下.如果你要安装我说的修改,修改前备份总是没错的. [:happy:] 另外,由于XP的窗口长宽比例,不推荐把常见任务移动到上方或者下方(这样的话要更改常见任务里组件的位置)

我们先来看几个图,我们下载一些主题后,可以发现应用后其中的常见任务栏不一定是在窗口左侧,而是有的在右边,有的甚至跑上边去了.大家已经发现这个可以修改VS中的shellstyle.dll达到这个效果,我也下载了可乐在一个帖子里提供的2种shellstyle.[;D]
图1:常见任务在窗口上方.



图2:常见任务在窗口右侧.





所以,第一种方法就是修改VS中的shellstyle.dll

关键是找到shellstyle.dll的什么地方在定义常见任务的位置.通过几个shellstyle.dll的对比.发现是其中uifile资源里的1号资源.其中定义位置的地方如图:
常见任务在上方的:



所以只要把里面的top修改成其他的,比如left,就能让常见任务回到左边.(这里需要注意的是,常见任务在上方的情况,其常见任务各部分位置在shellstyle中做了重排.我这里只是给大家看个效果而已,并没有重新排列常见任务中的各个组件)


常见任务在右边的也是一样:



把里面的right改成left后,常见任务就回到窗口左侧了





但是我们可以看到.一般的VS,以及XP默认的shellstyle.dll.在uifile的1号资源脚本最后是没有上面说的那些语句的.所以,上面我只是说明究竟是怎么定义常见任务位置的而已.要想让你现在所用VS的常见任务出现在右边(或者其他地方),只要在shellstyle.dll的uifile的1号资源最后加上如下一段语句,修改后编译保存就可以了.

<hwndview resid=main id=atom(main) sheet=styleref(main) layout=borderlayout()>
<ScrollViewer id=atom(scroller) sheet=styleref(taskpane) layoutpos=right xscrollable=false width=210rp>
<element id=atom(backdrop) layoutpos=top layout=filllayout()>
<element id=atom(sectionlist) layout=verticalflowlayout(0,0,3)/>
</element>
</ScrollViewer>
<Element layoutpos=Client layout=filllayout()>
<Element id=atom(clientviewhost) layout=borderlayout()>
</Element>
<Element id=atom(blockade) layout=borderlayout()>
<Element id=atom(blockadeaccent) layoutpos=left width=1/>
<Element id=atom(blockadeclient) layoutpos=client layout=borderlayout()>
<Element id=atom(blockadetitle) layoutpos=top/>
<Element id=atom(blockademessage) layoutpos=top/>
<Element id=atom(blockadeclear) layoutpos=top layout=borderlayout()>
<Button id=atom(blockadeclearbutton) layoutpos=top layout=borderlayout()>
<Element id=atom(blockadecleartext) layoutpos=top/>
</Button>
</Element>
</Element>
</Element>
</Element>
</hwndview>
<expando resid=mainsection layout=borderlayout() width=186rp>
<element layoutpos=top layout=filllayout()>
<button id=atom(header) layoutpos=bottom layout=borderlayout()>
</button>
<element id=atom(title) layoutpos=client/>
</element>
<clipper layoutpos=top>
<tasklist id=atom(tasklist) layout=verticalflowlayout(0,0,0)/>
</clipper>
</expando>
<expando resid=section layout=borderlayout() width=186rp>
<button id=atom(header) layoutpos=top layout=borderlayout()>
<element id=atom(title) layoutpos=client/>
</button>
<clipper layoutpos=top>
<tasklist id=atom(tasklist) layout=verticalflowlayout(0,0,0)/>
</clipper>
</expando>

如果要把常见任务修改到其他地方.只要修改红色部分的位置就可以了.左侧为left,右侧为right,上方为top,下方(只是理论上的猜测,没有试验)应该为bottom.这里要注意的是,由于XP窗口一般为长大于宽,所以放在上方和底部的时候,要在uifile的1号资源中重新定义常见任务的各部分位置.

第2种方法:那么,有没有办法让所有VS的常见任务都到右边去,而不是一个一个修改shellstyle呢,老外又是怎么想到加这么一段语句来实现常见任务位置的定义呢?
我们可以发现,加上的这段语句其实和shell32.dll里的uifile的3号资源里的语句一摸一样.所以,只要在shell32.dll里把位置定义好,以后就不用每个VS都一个一个去修改shellstyle了.如图:



只要把里面默认的left改成right,就可以把常见任务弄右边去了.


附件: 您所在的用户组无法下载或查看附件
很不错的方法!
楼主~看起来很是费劲啊~你按图看不清楚太小了~放大也看不清楚啊~还是从新编辑过好了~也方便一下我们这些新手学习~
还有的就是那编译的代码怎么复制啊~复制下来后怎么都是参杂了些垃圾乱码啊~怎么弄才能没有那乱码呢?一个个的复制很是浪费精力啊~
吾乃菜鸟,看不太懂
好用吗?去试试。
VTP8.0的VS主题原来就是这样分别做出的,强!
终于  知道了
引用:
原帖由 yaoxiyaoxi 于 2008-1-14 10:35 PM 发表
飘过, 带走三个羊***.
看看琳琳会不会来扣我分
。。。。。。 佩服,此人不怕扣分
MJ吗?



支持LZ!
我上中学了,请大家多多指教!  
应该属于技术流吧,呵呵
先顶再看
Aim & Action
WB里的那个在下面....怎么把它弄到左边里????
学习了!。。。。。。。。。。。。。。。。。。

参观参观
学习学习
楼主加油
死后
   與誰的屍體一起埋葬
  與誰的靈魂一同遊蕩
截图太小看起来有些费尽
算了 不搞了 怕把系统搞崩溃了 哈哈
哇 ..好多步骤啊..
赞,收藏了
关键是数据的试验
学习下。。。。。
做成小工具就好了
有点深奥~~~~~~~~~~
 62 1234
发新话题