いつもお世話になっております。
”ツリービューの幅を変更したい”の方を解決と閉じてしまいましたので
再度新規で質問させていただきます。
はじめに
dairygoods様、質問の書き方が悪く、また、せっかくいただいた返信も
軽く流してしまいました。本当に申し訳ありません。
返信を再度見てわからないことがありましたので、もう一度質問させていただきます。
遅くなりましたが、解決済みに返信いただきありがとうございました。
質問
現在、VS6SP5のMFCでプログラムをしています。
ウィンドウではなくダイアログベースでプログラムしているのですが、
ダイアログに貼り付けたツリービューのサイズを変更したいと思っています。
>とりあえず、WM_NCHITTESTだけ実装すればできそうです。
>case WM_NCHITTEST:
> if (カーソルが左端) {
> return HTLEFT;
> }
と返信をいただきましたが、これはウィンドウのサイズを変更する
時に使われるものではないのでしょうか?
すこし調べてみたのですがツリービューのサイズ変更との
関係を理解できませんでした(申し訳ありません)
ウィンドウ(またはダイアログ)のサイズを変更した時に
ツリービューもサイズを変更できるということでしょうか?
おわかりになる方がいらっしゃいましたら教えてください。
>Windowsはマウスカーソルが動いたりボタンが押されたりすると、
>カーソルの下のウィンドウ(もしくはカーソルをキャプチャしているウィンドウ)に
>WM_NCHITTESTというメッセージを送ります。
>ウィンドウはそのとき、カーソルがどこにあるのかという情報を返す...
「 http://www2.wbs.ne.jp/~shingo/programming/vc/vc_tips002.htm」 より引用
この情報をWindowsにだます事により変更可能になります
(※HTLEFT : ウィンドウ境界の左端の線上にあります。)
> と返信をいただきましたが、これはウィンドウのサイズを変更する
> 時に使われるものではないのでしょうか?
> すこし調べてみたのですがツリービューのサイズ変更との
> 関係を理解できませんでした(申し訳ありません)
ツリービューもウィンドウです。
> ツリービューもウィンドウです。
ああ、そういう事が聞きたかったのね。
前の書込みではMFCではないと書かれていましたが、
MFCを使用しているのですね?
その場合は、こんな風にします。
・クラスウィザードでCTreeCtrlの派生クラスを作る
・WM_NCHITTESTハンドラを追加し、OnNcHittest() にコードを書く
・クラスウィザードのメンバ変数タブで画面上のツリービューと
自作クラスを関連付ける。
dairygoods様、おっちゃん 様返信ありがとうございます。
>前の書込みではMFCではないと書かれていましたが、
すみません。書いてます。
MFCです。うそついてすみませんでした。
OnNcHittestから変更することができました。
多分あってると思います。ありがとうございました。