This page was last modified 19:06, 24 June 2008.
Series 60 3rd---调整list box位置和大小后造成与scroll bar不一致的解决办法
From Forum Nokia Wiki
Series 60 3rd---调整list box位置和大小后造成与scroll bar不一致的解决办法
S60 2nd FP3以后标准控件中的scroll bar不再是屏幕下方的两个三角形了,而换成了类似Windows中scroll bar的样式,这种样式更直观,用户感觉确实更好.然而在移植一个项目到S60 3rd上时碰到了这个问题:调整list box位置和大小后造成与scroll bar不一致.比如:通过对list box调用SetExtent()使其不占满客户区,这时scroll bar的大小并没有改变,造成了list box与scroll bar的错位. 解决办法: 首先通过list box基类CEikListBox::ScrollBarFrame()得到滚动条框架对象CEikScrollBarFrame类型的指针,然后通过CEikScrollBarFrame::GetScrollBarHandle()得到某个滚动条对象CEikScrollBar类型的指针,最后通过CEikScrollBar::SetExtent()调整滚动条的位置就可以了.
//Set the position of listbox
void CXXXContainer::SetListboxPos( const TPoint aPoint )
{
iListPos = aPoint;
if( iListBox )
{
TRect rect = Rect();
TSize size( Rect().Width(), Rect().iBr.iY - iListPos.iY );
iListBox->SetExtent( iListPos, size );
CEikScrollBar *scrollBar = iListBox->ScrollBarFrame()->GetScrollBarHandle( CEikScrollBar::EVertical );
if( scrollBar )
{
TPoint pos = scrollBar->Position();
pos.iY = iListPos.iY;
scrollBar->SetExtent( pos, scrollBar->MinimumSize() );
}
}
}
| Related Discussions | ||||
| Thread | Thread Starter | Forum | Replies | Last Post |
| S60 2nd Compiling problem for ARMI . | nanara | General Symbian C++ | 5 | 2007-01-11 14:08 |
| FP2 software on FP3 platform | rambler82 | General Symbian C++ | 6 | 2006-11-30 10:42 |
| is there a File class equivalent in J2ME? | rj_cybersilver | Mobile Java General | 44 | 2007-08-18 15:51 |
| question about 3rd party etel | daphnesu | General Symbian C++ | 7 | 2007-09-13 04:10 |
| What Nokia phones support Multimedia API (JSR-135) | alphanet | Mobile Java Media (Graphics & Sounds) | 13 | 2006-02-22 14:19 |
