アプリ版:「スタンプのみでお礼する」機能のリリースについて

お世話になります。
WindowsXP / VC2005 / VC++ MFC / ダイヤログベースにて開発を行っています。

グループボックス内にコンボボックスを2つ配置しています。

コンボボックスにカーソルを合わせて、マウスホイールをスクロールした際、
ボックスの中身がスクロールしないのですが、スクロールする方法をご存知でしたら教えていただけないでしょうか?

グループボックス外にコンボボックスを配置した場合では、ボックスの中身がスクロールされており、
再度グループボックス内にてプロパティを変更したりと試してみたのですが、思うように行きません。

よろしくお願いいたします。

A 回答 (3件)

フォーカスがあたっていないだけなのでは無いですか?



CDialogクラスの WM_MOUSEWHEELメッセージのハンドラで

CRect rc;
CWnd* pWnd;
// コンボボックスを取得
pWnd = GetDlgItem( IDC_COMBO1 );
// 位置+大きさを取得
pWnd->GetWindowRect( &rc );
// ダイアログ座標に変換
ScreenToClient( &rc );
// 引数の ptもダイアログ座標に変換
ScreenToClient( &pt );
// Ptが コンボボックスの中なら フォーカス設定する
if ( rc.PtInRect( pt ) ) {
  pWnd->SetFocus();
}
    • good
    • 0
この回答へのお礼

早速のご回答ありがとうございます。やはり思うように行きません。
ご指摘のとおりコンボボックスに対してフォーカスは当たっておらず、
ソースコードを引用することによりフォーカスは当たるようになりましたが、
状況は変化しませんでした(キーボードの↑キー、↓キーなどでは選択可能)。

現状、グループボックスのDisabledとVisibleプロパティはFalseとなっており、
どちらか一方をTrueにしますと、スクロールは可能になりますが、本末転倒です。

WM_MOUSEWHEELメッセージのハンドラでコンボボックスの値を変更するような
コードの追加が必要となるのでしょうか。

お礼日時:2008/03/08 09:35

コンボボックスの親は何なのでしょう


グループボックスですか? ダイアログですか?

タブオーダーはどのような順なのでしょう

コンボボックス1 > コンボボックス2 > グループボックス
といった順なら
グループボックス > コンボボックス1 > コンボボックス2
といった順序に直しましょう

ダイアログエディタを起動して CTRL+D または 書式 > タブオーダー
でタブオーダーを変更して リビルドしてみましょう
    • good
    • 0
この回答へのお礼

再度ご回答ありがとうございます。
コンボボックスの親は特に意識していませんでしたが、ダイヤログだと思います。

その方法として合っているかわからず申し訳ありませんが、
グループボックス内と外のコントロールに対して、GetParent()を行ったところ、
戻り値のアドレスがどちらも同じアドレスをさしていたため、そう判断しました。

タブオーダーに関してですが、一点記載漏れがあり、グループボックス内には2つのラベルがあります。
順序としては、グループボックス>ラベル1>コンボボックス1>ラベル2>コンボボックス2
となっておりましたので、念のため以下のように変更しましたが、特に変わりませんでした。
グループボックス>コンボボックス1>コンボボックス2>ラベル1>ラベル2

お礼日時:2008/03/09 01:05

グループボックスの Visibleプロパティは Trueがデフォルトだと思います



グループボックスを非表示になさっているのでしょうか?

この回答への補足

自宅PC(VC2005 Standard)でデバッグしたところ当該事象が起こり、
会社PC(VC2005 Professional)では当該事象は起こりませんでした。
どちらも共通のソリューションからデバッグしています。

また、一方のPCで作ったエグゼを他方のPCで動作するか確認予定です。
(お礼記載後に補足いたしました)

補足日時:2008/03/11 09:29
    • good
    • 0
この回答へのお礼

申し訳ありません。記載ミスでした。

VisibleプロパティはTrueで、DisabledプロパティがFalseです。

どちらか一方のTrue、Falseを反転すると、マウスホイールによる
コンボボックスのスクロールが可能となりますので、現在は
暫定的にDisabledプロパティをTrueにして作業しております。

お礼日時:2008/03/10 09:16

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!