CTreeCtrlの水平スクロール – プログラミング – Home

CTreeCtrlの水平スクロール
 
通知
すべてクリア

CTreeCtrlの水平スクロール


いっこう
 いっこう
(@いっこう)
ゲスト
結合: 22年前
投稿: 22
Topic starter  

いつも参考にさせていただいてます。
CTreeCtrlの水平スクロールについて質問があります。

現在CTreeCtrlの発生クラスを作成し
OnPaintで表示される内容を描画しています。

CTreeCtrlにアイテムを挿入する際、
TV_INSERTSTRUCTのitemのpszTextに表示内容を設定していたときは
水平スクロールバーは表示されていたのですが、
TV_INSERTSTRUCTのitemのlParamにポインタをセット(pszTextには何もセットしない)し、
再描画するたびに表示内容を作成し表示していたら
長い文字列を表示する際、水平スクロールバーが表示されなくなってしまいました。
「プロパティ」の「その他のスタイル」の「スクロール」はチェックしています。

pszTextに文字列を設定しないと水平スクロールバーは作成されないのでしょうか?

よろしくお願いします。

環境 :
NT VC6.0 MFC


引用解決済
トピックタグ
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

lParamに独自の値を設定した場合、CTreeCtrlはそれを表示するのに
必要な幅が分からないでしょうから、自動でスクロールバーを出してくれ!
と言っても無理ではないでしょうか?

SetScrollRange()などを使って設定してみてはどうでしょう?


返信引用
いっこう
 いっこう
(@いっこう)
ゲスト
結合: 22年前
投稿: 22
Topic starter  

dairygoodsさん レス有難うございます。

ShowScrollBar、SetScrollInfoでスクロール情報を作成し、
WM_HSCROLLメッセージを追加し表示されている文字は移動できましたが、
ボタン?(+、-)が移動しません。
ボタンを移動させる方法はあるのでしょうか?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

WM_HSCROLLメッセージハンドラ内で、CTreeCtrl::OnHScroll()を呼び出して
CTreeCtrlにもスクロールイベントを渡してあげてますか?


返信引用
いっこう
 いっこう
(@いっこう)
ゲスト
結合: 22年前
投稿: 22
Topic starter  

dairygoodsさん レスありがとうございます。

>WM_HSCROLLメッセージハンドラ内で、CTreeCtrl::OnHScroll()を呼び出して
>CTreeCtrlにもスクロールイベントを渡してあげてますか?

と有りますが、
CTreeCtrlを継承しているクラスにWM_HSCROLLメッセージを追加するということで
あっているでしょうか?


返信引用
dairygoods
 dairygoods
(@dairygoods)
ゲスト
結合: 23年前
投稿: 1421
 

> WM_HSCROLLメッセージを追加し表示されている文字は移動できましたが、

とあったので、ハンドラを追加したのかと思いました。
追加していないのであれば、追加の必要はないと思います。


返信引用

返信する

投稿者名

投稿者メールアドレス

タイトル *

プレビュー 0リビジョン 保存しました
共有:
タイトルとURLをコピーしました