WEB开发网      濠电娀娼ч崐濠氬疾椤愶附鍋熸い鏍ㄧ〒闂勫嫰鏌﹀Ο渚Ц闁诲氦顕ч湁婵犲﹤楠告禍鍓х磼鏉堛劌绗氶柟宄版嚇閹晠宕归銈嗘濠电偞鍨堕幐鎾磻閹捐秮褰掓偐閻戞﹩妫勯梺鎼炲妼鐎涒晝绮嬪澶樻晝闁挎繂鏌婇敃鍌涚厵閻庢稒锚閻忥絾绻濇繝鍐ㄧ伌闁诡垰鍟村畷鐔碱敂閸♀晙绱樺┑鐐差嚟婵儳螞閸曨剚鍙忛柍鍝勬噹缁€澶嬬箾閹存繄锛嶆鐐灲閹綊宕惰濡插鏌涢妸銉ヮ劉缂佸倸绉归弫鎾绘晸閿燂拷 ---闂備焦瀵уú鈺呭箯閿燂拷
开发学院手机开发Symbian 开发 自定义滚动条算法symbian 阅读

自定义滚动条算法symbian

 2010-10-20 07:59:55 来源:WEB开发网 闂備線娼уΛ鎾箯閿燂拷闂備礁鎲¢崹鐢垫崲閹扮増鍎嶆い鎺戝€甸崑鎾斥槈濞嗗秳娌紓鍌氱▌閹凤拷濠电姭鎷冮崨顓濈捕闂侀潧娲ゅú銊╁焵椤掍胶鈯曢柕鍥╁仧缁辩偤鏁撻敓锟�闂備線娼уΛ鎾箯閿燂拷  闂備胶枪缁绘鈻嶉弴銏犳瀬闁绘劕鎼痪褔鏌曟繝蹇曠窗闁煎壊浜滈—鍐偓锝庡墮娴犙勭箾閸喎鐏ユい鏇樺劦椤㈡瑩鎮℃惔銇帮拷
核心提示:自己搞定了,分享一下:1.算出滚动条的高度,自定义滚动条算法symbian,TInt height = 一屏显示的行数 * 屏幕高度 / 总行数2.根据第一步算出的高算出移动步长.TInt step = (屏幕高 - height) / 总行数;3.上下移动时增加或减少步长, ...lming 发表于 2009-4-8

自己搞定了,分享一下:

1.算出滚动条的高度。

TInt height = 一屏显示的行数 * 屏幕高度 / 总行数

2.根据第一步算出的高算出移动步长.

TInt step = (屏幕高 - height) / 总行数;

3.上下移动时增加或减少步长。 ...

lming 发表于 2009-4-8 16:14 php?goto=findpost&pid=31249&ptid=7850" target="_blank">[/quote]

可以参考浏览器接口的滚动条的回调参数。

virtual void MBrCtlLayoutObserver::UpdateBrowserVScrollBarL ( TInt aDocumentHeight,

TInt aDisplayHeight,

TInt aDisplayPosY

) [pure virtual]

你看,总共有3个参数。

第一个是整体文档的高度,第二个是屏幕显示的高度,第三个是当前开始显示点的高度。

根据这三个参数,应该可以应付各种滚动条的计算了。

# void CLabelControl::UpdateScrollBarFrameL()

# {

# // Set teh scrollbar visible if fields do not fit the screen

# if (iRowNum > iRows && iScrollBarFrame->VScrollBarVisibility()

# == CEikScrollBarFrame::EOff)

# {

# iScrollBarFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, // horizontal

# CEikScrollBarFrame::EOn); // vertical

# }

# // Hide the scrollbar if fields fit the screen

# else

# if (iRowNum <= iRows && iScrollBarFrame->VScrollBarVisibility()

# == CEikScrollBarFrame::EOn)

# {

# iScrollBarFrame->SetScrollBarVisibilityL(CEikScrollBarFrame::EOff, // horizontal

# CEikScrollBarFrame::EOff); // vertical

# }

#

# // Update scroll bar position

# iVDsSbarModel.SetScrollSpan(iRowNum);

# iVDsSbarModel.SetWindowSize(iRows);

# iVDsSbarModel.SetFocusPosition(iRowIndex);

1 2  下一页

Tags:定义 滚动 算法

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接