ピクチャーボックスへのスクロールバー搭載


モトロ  2004-10-27 10:52:40  No: 54910

こんばんは、いつもお世話になっております。
下記の件でうまくいかないので、アドバイス頂ければ有難いです。

現在、ダイアログベースでピクチャーボックスへの画像表示アプリを作成しています。
ピクチャーボックスのサイズより、画像サイズが大きい場合にスクロールバーを表示したいと思っています。CWnd::ShowScrollBarを使用し、スクロールバーは表示できるのですが、まったく操作ができず(クリックできない)、メッセージも飛んでないようです。(派生クラスでハンドリング)
ピクチャーボックスの標準スクロールバーは、機能しないのでしょうか??

宜しくお願い致します。


モトロ  2004-10-27 17:25:35  No: 54911

自己レスです。
環境はVC6.0 MFC, Win2000SP4です。


sayaka  2004-12-10 14:53:57  No: 54912

私もモトロさんと同様の問題に突き当たりました。
どなたか解決法を知っている方いらっしゃいませんでしょうか?


なーめ  2004-12-11 00:04:39  No: 54913

最初の投稿から2週間か...モトロさん見てるかな。
sayakaさんでもいいけど、以下の質問に答えてください。
CStatic 派生クラスを生成していますか?
それとも CDialog派生クラスからの直接制御ですか。
トレースしてみようと思ったのですが、
どっちかわからないのですよ。
(Win2k,VC++6.0)


なーめ  2004-12-11 11:00:19  No: 54914

派生クラスを割り当てて、いろいろ調べてみました。
リソースファイルのコントロールに"Static"と書いた時点で
スクロールバーが制御不能になるらしいですね。
つまりピクチャのスクロールバーはつかえないと。
スクロールバーの表示だけはできるのですが。
派生元クラスの CStatic を CWnd にしても変わりません。
AfxWndProc()にすらWM_VSCROLLはきません。
WM_LBUTTONDOWN が スクロールバーの動作に反映されないみたいです。
スクロールバーをクリックすると素で WM_LBUTTONDOWN が来てしまいます。
まあ、他にスクロールバーコントロールが用意されているので、
これを並べて配置し、使わないときはスクロールバーコントロールを
非表示(SW_HIDE)しておく形が一般的なのではないでしょうか。


※返信する前に利用規約をご確認ください。

※Google reCAPTCHA認証からCloudflare Turnstile認証へ変更しました。






  このエントリーをはてなブックマークに追加