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ランキング
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
Excelでワードアートや図を常に...
-
PDFを(htmlのように)無限に縦...
-
大きい表へのスクロールバーの...
-
マウスでコロコロしたいんですが…
-
ページ訪問時にiframe内を自動...
-
Spreadのスクロールについて
-
リストビューのスクロールバー...
-
画像のようにとあるサイトの横...
-
Visual Basicから Spreadのスク...
-
Excelで1.2行目だけ固定して...
-
マウスオーバー→ホイール回転で...
-
html js 横軸の長いチャート
-
C#:ListViewでのスクロールイベ...
-
勝手にスクロールして動いてしまう
-
リストビューの表示開始行変更
-
リストビューの水平スクロール...
-
Excelで一部分だけを常に表示さ...
-
TreeViewのスクロール制御
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Excelでワードアートや図を常に...
-
リストビューをスクロールさせ...
-
エクセルVBAでフォームのListbo...
-
PDFを(htmlのように)無限に縦...
-
画像のようにとあるサイトの横...
-
大きい表へのスクロールバーの...
-
Excelで1.2行目だけ固定して...
-
Excelで一部分だけを常に表示さ...
-
ページ訪問時にiframe内を自動...
-
Visual Basicから Spreadのスク...
-
リストビューのスクロールバー...
-
vb,netでtextboxの文字を右から...
-
webページで横方向にアンカーを...
-
リストビューの水平スクロール...
-
マウスオーバー→ホイール回転で...
-
文章の自動スクロール
-
IFRAMEでscrolling="yes|no"の...
-
ExcelVBAで他のアプリをスクロ...
-
MFCでのスクロールバーの扱い
-
リストビューの表示開始行変更
おすすめ情報