关于Ttreeview的滚动条的修改(55分)

  • 主题发起人 主题发起人 apex
  • 开始时间 开始时间
A

apex

Unregistered / Unconfirmed
GUEST, unregistred user!
1。我想修改Ttreeview的滚动条为flat,就象Tlistview的flatscrollbars属性一样。最好同时能改变滚动条的颜色。
2。如何将其他滚动条控件如LMD的TLMDScorllbar置入TTreeview中。
3。winapi中的showscrollbar函数好象有问题。
showscrollbar(TreeView1.handle,sb_both,false)只能消除垂直滚动
条,而水平的消不掉。而且将Treeview的width设置到一定大的数值,两者都
消不掉了。
问题1,2最好有代码解答。
 
cAkk,快来解答
 
各位高手,出招啊!!!
 
没人答?!横下一条心,加到100大元
 
急,急,急
没人答吗?:-(
 
帮你提议提~
 
版主放假了???
 
ahaaaaaaaaaaaaaa
 
1.好像不行,至少哦是不会
2.隐藏treeview的滚动条,然后访一个假的,自己模拟scrollwindow?
不知道行不行./,没时间尝试了

3.你应该先取消treeview的滚动,再取消scrollbar,然后再恢复treeview滚动
SetComCtlStyle(treeview1,TVS_NOSCROLL,true);
showscrollbar(treeview1.handle,sB_both,false);
SetComCtlStyle(treeview1,TVS_NOSCROLL,false);
 
我查过delphi的原码,Tlistview的flatscrollbars属性好象是通过message来实现
的,而TListview和TTreeview都是TWincontrol类,为什么前者行,而后者不行?
:-(
 
我已找到api函数:InitializeFlatSB((hWnd: HWND),可以使Ttreeview控件的
滚动条成flat,但是在滚动时不正常,有谁愿意试一下?此函数在flatsb.pas中。
 
附加功能 将问题提前
 
自己做一个
 
1、不会。
2、自己写或者参考它的代码。
3、下面的代码可以消除水平滚动条。
procedure TForm1.TreeExpanded(Sender: TObject; Node: TTreeNode);
begin
ShowScrollBar(HisTree.Handle, SB_HORZ, False);
end;
 
sendmessage();;;里面找。。。
 
我也来学习学习!^-^
 
简单!
把TREEVIEW放到SCROLLBOX里,并且根据TREEVIEW的字体随时更新它的高度、宽度,
保证它绝对不出现滚动条!这样,就可以看到只有SCROLLBOX的滚动条了!!!

方法不错吧!!!!呵呵
 
apex:如果你还要继续讨论请定期提前你的帖子,如果不想继续讨论请结束帖子。
 
后退
顶部