VB6でTreeViewコントロールのスクロールをプログラム側から制御する物を作っているのですが分からなくて困っています。
TreeViewでNodeが増えれば自動的に表示されるスクロールバーは表示をしないように「Scrollプロバティ」にFalseを入力してSendMessageで下記の方法で行ったのですがスクロールしません。
Private Sub Command1_Click()
Call SendMessage(TreeView1.hwnd, WM_VSCROLL, MAKEWPARAM(SB_THUMBPOSITION, sPos), 0)
End Sub
Private Function MAKEWPARAM(LOWWORD As Long, HIWORD As Long) As Long
MAKEWPARAM = (LOWWORD And &HFFFF&) Or (HIWORD * &H10000)
End Function
「Scrollプロパティ」にTrueを設定すると問題なくできるのですが、どなたか分かる方がいましたら宜しくお願い致します。
A 回答 (1件)
- 最新から表示
- 回答順に表示
No.1
- 回答日時:
WM_SCROLLでは上手くいかないようですので
SetWindowLong/GetwindowsLongで TreeViewのウィンドウスタイルに
WM_VSCROLLを追加します
TreeViewのScrollを Trueにします
Private Const GWL_STYLE = (-16)
Private Const WS_VSCROLL = &H200000
Private Declare Function SetWindowLong Lib "user32" Alias "SetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
Private Declare Function GetWindowLong Lib "user32" Alias "GetWindowLongA" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
FormのLoadイベントなどで
dim style as long
style = GetWindowLong( TreeView1.hWnd, GWL_STYLE)
SetWindowLong TreeView1.hWnd, GWL_STYLE, style or WS_VSCROLL
' ScrollをTrueにしてもスクロールバーは表示されません
TreeView1.Scroll = True
VScrollコントロールのChangeイベントで
if TreeView1.Nodes( VScroll1.Value).visible = false then
TreeView1.Nodes( VScroll.Value).EnsureVisible
end if
といった具合にすると スクロールしますよ
Nodesの引数に何を与えるのかは 適宜修正してください
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Access(アクセス) Vba Userformを前面に出すについて 3 2022/04/15 12:29
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたいの続き 5 2023/01/24 00:16
- Visual Basic(VBA) EXCEL VBAにて動的にCheckBOXを複数作成し、同BOXにイベントを追加したい 1 2023/03/16 07:05
- Visual Basic(VBA) いつもお世話になっております、VBAで教えて頂きたいのですが 2 2022/05/05 22:20
- Excel(エクセル) B列に文字がはいったらA列に数字が入るマクロードを完成させたい 4 2023/04/21 01:58
- Visual Basic(VBA) ユーザーフォーム「frm_基本❶」を立ち上げると新規で入力する行数を右下のNoとして表示しています。 1 2023/03/16 19:02
- Excel(エクセル) 2つのVBAを一緒にしたら機能しなくなりました(エクセル) 7 2022/06/02 12:41
- Visual Basic(VBA) パーソナルXLSBのfuctionを呼び出すと「Functionが定義されていません」のエラーになる 2 2022/08/22 22:51
- Visual Basic(VBA) VBA 別ブックからの転記の高速化について VBA 別ブックからの転記の高速化についてご教授下さい。 19 2022/07/26 13:07
- Visual Basic(VBA) 別シートから年齢別の件数をカウントしたい 6 2023/01/23 12:00
このQ&Aを見た人はこんなQ&Aも見ています
関連するカテゴリからQ&Aを探す
おすすめ情報
このQ&Aを見た人がよく見るQ&A
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
リストビューをスクロールさせ...
-
Excelで1.2行目だけ固定して...
-
PDFを(htmlのように)無限に縦...
-
Excelで一部分だけを常に表示さ...
-
vb,netでtextboxの文字を右から...
-
ページ読み込み時に自動でスク...
-
上下キーを押すと、ページスク...
-
IFRAMEでscrolling="yes|no"の...
-
ExcelVBAで他のアプリをスクロ...
-
Excelの質問で票の途中に...
-
楽天HPで。(初心者です)
-
キーボードを押したら画像がス...
-
ペンタブのスクロールができません
-
Webサイト内でスクロールする小...
-
Visual Basicから Spreadのスク...
-
【VC++6.0】ソースコードの文字...
-
VC++ DialogBoxへのscroll可能...
-
このサイトのスクロール逆じゃ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
リストビューをスクロールさせ...
-
Excelで1.2行目だけ固定して...
-
Excelの質問で票の途中に...
-
Excelで一部分だけを常に表示さ...
-
大きい表へのスクロールバーの...
-
ページ訪問時にiframe内を自動...
-
Visual Basicから Spreadのスク...
-
vb,netでtextboxの文字を右から...
-
webページで横方向にアンカーを...
-
リストビューの表示開始行変更
-
スクロール位置を中央にしたい
-
マウスオーバー→ホイール回転で...
-
VBE画面の縦のスクロールバ...
-
IFRAMEでscrolling="yes|no"の...
-
マウスでコロコロしたいんですが…
-
文章の自動スクロール
-
ポストバック時のスクロール位...
おすすめ情報