• ベストアンサー

コンボボックスのリストの位置

VisualBasic 6.0のコンボボックスに、API(CB_SETDROPPEDWIDTH)を利用してドロップダウンリストの幅を広げて使っています。 このときコンボボックスが画面の右端にあったり、極端に広いリストにした場合に、リストの右端が画面からはみ出してしまいます。 リストがはみ出すときは、コンボボックスの位置を変えずにリストのみ左へずらしたいのですが、そのようなことはできるのでしょうか?  よろしくお願いいたします。

質問者が選んだベストアンサー

  • ベストアンサー
  • taka_tetsu
  • ベストアンサー率65% (1020/1553)
回答No.1

CB_GETCOMBOBOXINFOでリスト部分のウィンドウハンドルが取得できるから自分で移動させれば変えられるかも。 http://msdn.microsoft.com/library/default.asp?url=/library/en-us/shellcc/platform/commctls/comboboxes/comboboxreference/comboboxstructures/comboboxinfo.asp 未確認です。

Naonosuke
質問者

お礼

返事が大変遅くなり申し訳ございませんでした。 結論から言うと、CB_GETCOMBOBOXINFOで取得したハンドルでウインドウの位置を変更しておいても、ドロップダウンする時に元の位置に戻されてしまい、解決できませんでした。  しかし、この回答が大きなヒントとなりました。ドロップダウンしてリストが表示された状態ならば移動できるので、ちょっとかっこ悪いし、正攻法ではないですが、ドロップダウンのイベントの時にタイマーをかけておいて、そのタイマーのイベントで位置を変えるという方法で回避しました。  おかげさまで、問題が解決いたしました。ありがとうございます。

関連するQ&A

専門家に質問してみよう