- ベストアンサー
コンボボックスのリストの位置
VisualBasic 6.0のコンボボックスに、API(CB_SETDROPPEDWIDTH)を利用してドロップダウンリストの幅を広げて使っています。 このときコンボボックスが画面の右端にあったり、極端に広いリストにした場合に、リストの右端が画面からはみ出してしまいます。 リストがはみ出すときは、コンボボックスの位置を変えずにリストのみ左へずらしたいのですが、そのようなことはできるのでしょうか? よろしくお願いいたします。
- みんなの回答 (1)
- 専門家の回答
質問者が選んだベストアンサー
CB_GETCOMBOBOXINFOでリスト部分のウィンドウハンドルが取得できるから自分で移動させれば変えられるかも。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/comboboxes/comboboxreference/comboboxstructures/comboboxinfo.asp 未確認です。
お礼
返事が大変遅くなり申し訳ございませんでした。 結論から言うと、CB_GETCOMBOBOXINFOで取得したハンドルでウインドウの位置を変更しておいても、ドロップダウンする時に元の位置に戻されてしまい、解決できませんでした。 しかし、この回答が大きなヒントとなりました。ドロップダウンしてリストが表示された状態ならば移動できるので、ちょっとかっこ悪いし、正攻法ではないですが、ドロップダウンのイベントの時にタイマーをかけておいて、そのタイマーのイベントで位置を変えるという方法で回避しました。 おかげさまで、問題が解決いたしました。ありがとうございます。