<style resid=scroller>
scrollbar
{
layoutpos: ninebottom;
}
scrollbar [vertical]
{
layoutpos: nineright;
}
viewer
{
layoutpos: nineclient;
}
thumb
{
background: dtb(handlemap(1), 3, 1);
content: dtb(handlemap(1), 9, 1);
contentalign: middlecenter;
}
thumb [mousefocused]
{
background: dtb(handlemap(1), 3, 2);
content: dtb(handlemap(1), 9, 2);
}
thumb [captured]
{
background: dtb(handlemap(1), 3, 3);
content: dtb(handlemap(1), 9, 3);
}
repeatbutton [id=atom(lineup)]
{
background: dtb(handlemap(1), 1, 1);
width: sysmetric(2);
height: sysmetric(20);
}
repeatbutton [id=atom(lineup)][mousefocused]
{
background: dtb(handlemap(1), 1, 2);
}
repeatbutton [id=atom(lineup)][pressed]
{
background: dtb(handlemap(1), 1, 3);
}
repeatbutton [id=atom(linedown)]
{
background: dtb(handlemap(1), 1, 5);
width: sysmetric(2);
height: sysmetric(20);
}
repeatbutton [id=atom(linedown)][mousefocused]
{
background: dtb(handlemap(1), 1, 6);
}
repeatbutton [id=atom(linedown)][pressed]
{
background: dtb(handlemap(1), 1, 7);
}
repeatbutton [id=atom(pageup)]
{
background: dtb(handlemap(1), 7, 1);
}
repeatbutton [id=atom(pageup)][mousefocused]
{
background: dtb(handlemap(1), 7, 2);
}
repeatbutton [id=atom(pageup)][pressed]
{
background: dtb(handlemap(1), 7, 3);
}
repeatbutton [id=atom(pagedown)]
{
background: dtb(handlemap(1), 6, 1);
}
repeatbutton [id=atom(pagedown)][mousefocused]
{
background: dtb(handlemap(1), 6, 2);
}
repeatbutton [id=atom(pagedown)][pressed]
{
background: dtb(handlemap(1), 6, 3);
}
</style><!-- / message -->
-- 作者:store88
-- 发布时间:2005-11-10 23:58:17
--
(2)各组件动作时机及显示设定部份
这一部份就是登录界面执行动作的脚本码,以上面各项组件的定义作基础,设定整个界面运行时的布局分配及事件触发时机.
以下分为三部解说.
<logonframe...>起始,</logonframe>结尾
这里规范整个动作脚本的画面布局及分配,以上面定义组件1~5的部份,作动作指定及执行.
<logonaccount...>起始,</logonaccount>结尾
这一段执行脚本码配合上面定义组件6.7.9部份,对账户窗口内的各组件作布局及指定动作.
<element resid=passwordpanel...>起始,</element>结束
这一段执行脚本码配合上面定义组件8部份,对账户密码及附属组件作布局及指定动作
下面是这三段脚本码的个别解说.
<logonframe resid=main id=atom(frame) sheet=styleref(framess) layout=borderlayout()>
<element id=atom(toppanel) sheet=styleref(toppanelss) layout=borderlayout() layoutpos=top height=80rp> #执行时上画面位于画面顶端,高度80
<element id=atom(divider) layoutpos=bottom height=2rp/> #执行时上画面分隔线位于上画面底部,高度2
</element>
<element id=atom(bottompanel) sheet=styleref(bottompanelss) layout=borderlayout() layoutpos=bottom> #执行时下画面位于画面底部,不设高度,由下方组件判断
<element id=atom(divider) layoutpos=top height=2rp/> #执行时下画面分隔线位于下画面顶端,高度2
<element id=atom(options) layout=borderlayout() layoutpos=client> #设定执行下画面时功能定义的各组件空间距离
<element layout=borderlayout() layoutpos=left> #安排下面的关机按键排列在下画面的左侧
<button id=atom(power) layout=borderlayout() layoutpos=top accessible=true accRole=43 accName=rcstr(11)> #设定关机按键为可执行,位在上方,显示文字
<element layoutpos=left content=rcbmp(107,3,-1,26rp,26rp,0,0) /> #指定关机按键图片及宽26高26
<element id=atom(label) layoutpos=client margin=rect(2rp,0,0,0)/> #关机文字左方设定2pix空间
</button>
<button id=atom(undock) layout=borderlayout() layoutpos=top margin=rect(0,2rp,0,0) accessible=true accRole=43 accName=rcstr(14)> #退出键同关机键
<element layoutpos=left content=rcbmp(108,3,-1,26rp,26rp,0,0)/>
<element id=atom(label) layoutpos=client margin=rect(2rp,0,0,0)/>
</button>
</element>
<element id=atom(instruct) layoutpos=right content=rcstr(25) width=325rp/> #消息正文,置于右方,由右算起325pix开始显示
</element>
</element>
<element id=atom(contentcontainer) layout=flowlayout(1,3,2,3) layoutpos=client content=rcbmp(100,0,0,219rp,207rp,1,0)> #设定中画面图片,砖块排列置中,宽高度
<element id=atom(leftpanel) sheet=styleref(leftpanelss) layout=filllayout() layoutpos=left> #左画面填充模式,置左
<element id=atom(logoarea) layout=verticalflowlayout(0,3,3,2)> #logo组件垂直排列(指下面的product.help)
<element id=atom(product) contentalign=topright padding=rect(0rp,0rp,20rp,20rp) content=rcbmp(123,3,-1,137,86,0,0) background=rgb(90,126,220)/>
<element id=atom(help) contentalign=wrapright width=384rp padding=rect(0rp,0rp,40rp,0rp)/> #登入出讯息由中间算起384开始显示,并加右方40的空间距离
</element>
<element id=atom(msgarea) layout=verticalflowlayout(0,0,0,2) > #欢迎讯息组件(包括Welcome及阴影)以填充模式(填Welcome文字)垂直排列
<element layout=filllayout() width=384rp> #填充宽度384
<element id=atom(welcomeshadow) content=rcstr(7)/> #填充文字阴影依字符串值7内容显示(此例为Welcome)
<element id=atom(welcome) content=rcstr(7)/>
</element>
</element>
</element>
<element id=atom(rightpanel) sheet=styleref(rightpanelss) layout=borderlayout() layoutpos=left width=384rp> #右画面以外框模式置左,宽度384
<element id=atom(divider) layoutpos=left width=1rp/> #中央分隔置于右画面左侧,宽度1
<scrollviewer id=atom(scroller) sheet=styleref(scroller) layoutpos=client xscrollable=false margin=rect(26rp,0rp,0rp,0rp)> #账户窗口滑杆不需要时不显示
<selector id=atom(accountlist) sheet=styleref(accountlistss) layout=verticalflowlayout(0,3,3,2)/> #账户名单垂直排列
</scrollviewer>
</element>
</element>
</logonframe>
<logonaccount resid=accountitem id=atom(accountitem) layout=filllayout() accessible=true accRole=43> #设定使用者账户为可执行
<element id=atom(userpanelayer) layout=borderlayout() height=80rp> #每个账户所占高度80
<element id=atom(userpane) layout=borderlayout() layoutpos=top> #账户底图位置
<element id=atom(pictureframe) layout=flowlayout(0,2,2) layoutpos=left width=58rp height=58rp> #账户头像底图宽高
<element id=atom(picture) />
</element>
<element id=atom(username) layoutpos=top/> #账户名称位置
<button id=atom(status0) class="status" layoutpos=none/> #使用者系统状态显示位置不作设定(依组件定义运行)
<button id=atom(status1) class="status" layoutpos=none/>
</element>
</element>
</logonaccount>
<element resid=passwordpanel id=atom(passwordpanelayer) sheet=styleref(passwordpaness) layout=borderlayout() height=80rp> #账户密码组件高度
<element layout=borderlayout() layoutpos=bottom>
<edit id=atom(password) layoutpos=left width=163rp/> #密码框宽度
<element id=atom(keyboard) layoutpos=left/> #密码输入位置
<button id=atom(go) layoutpos=left accessible=true accRole=43 accName= rcstr(100)/> #进入按键设置为可执行,按下时显示字符串值100
<button id=atom(info) layoutpos=left accessible=true accRole=43 accName= rcstr(13)/> #密码提示键设置为可执行,按下时显示字符串值13
</element>
<element id=atom(instruct) layoutpos=bottom content=rcstr(6)/> #密码框上方文字依字符串值6显示
</element>
结语:
对于这种字多图少枯燥冗长的教程,我并不期待大家能够一次就耐心看完,只希望大家把它作为数据库,当你要自己修改制作XP登录画面,
需要对脚本码有点了解时,能有地方可以参考.当然上面脚本码其实还有一些是我一直试不出来的,例如关机按键rcbmp(107,3,-1,26rp,26rp,0,0),
这个参数-1的含义,所以再次期待有程序代码写作经验的网友给我指教,让这基础教程不要传递了错误的学习.
更多相关内容请看:| 操作系统栏目热点内容推荐 | |||
| 火辣热点推荐:微软最新操作系统Windows Vista专区 | |||
系统进程查询系统 |
Windows优化专区 |
||
Windows变慢原因及解决方法 |
|||
| 原野的个人信息:E-Mail Blog 天极群乐 制作的专题 | |||
| 火热主题社区推荐:Vista、Windows、Windows XP、系统优化、Linux | |||
| 软件频道精品推荐 | |||
|
|
|
|
|
![]() |
|
|
关注此文的读者还看过: