こんばんは、いつもお世話になっております。
下記の件でうまくいかないので、アドバイス頂ければ有難いです。
現在、ダイアログベースでピクチャーボックスへの画像表示アプリを作成しています。
ピクチャーボックスのサイズより、画像サイズが大きい場合にスクロールバーを表示したいと思っています。CWnd::ShowScrollBarを使用し、スクロールバーは表示できるのですが、まったく操作ができず(クリックできない)、メッセージも飛んでないようです。(派生クラスでハンドリング)
ピクチャーボックスの標準スクロールバーは、機能しないのでしょうか??
宜しくお願い致します。
自己レスです。
環境はVC6.0 MFC, Win2000SP4です。
私もモトロさんと同様の問題に突き当たりました。
どなたか解決法を知っている方いらっしゃいませんでしょうか?
最初の投稿から2週間か...モトロさん見てるかな。
sayakaさんでもいいけど、以下の質問に答えてください。
CStatic 派生クラスを生成していますか?
それとも CDialog派生クラスからの直接制御ですか。
トレースしてみようと思ったのですが、
どっちかわからないのですよ。
(Win2k,VC++6.0)
派生クラスを割り当てて、いろいろ調べてみました。
リソースファイルのコントロールに"Static"と書いた時点で
スクロールバーが制御不能になるらしいですね。
つまりピクチャのスクロールバーはつかえないと。
スクロールバーの表示だけはできるのですが。
派生元クラスの CStatic を CWnd にしても変わりません。
AfxWndProc()にすらWM_VSCROLLはきません。
WM_LBUTTONDOWN が スクロールバーの動作に反映されないみたいです。
スクロールバーをクリックすると素で WM_LBUTTONDOWN が来てしまいます。
まあ、他にスクロールバーコントロールが用意されているので、
これを並べて配置し、使わないときはスクロールバーコントロールを
非表示(SW_HIDE)しておく形が一般的なのではないでしょうか。
ツイート | ![]() |