• ベストアンサー

スクリーンからはみ出ないポップアップ(win32api)

win32apiでアプリケーションを作っています。 右クリックしたときに表示されるポップアップメニューがスクリーンからはみ出ないように、右クリックされた時にポップアップがはみ出るようならポップアップの位置を調整する、ということをしたいです。 その為には表示されるポップアップのサイズが分からないといけないのですが、ポップアップのサイズを得る方法はありますか?大体でやってしまってもあまり問題はないかもしれませんが。 回答よろしくお願いします。

noname#113783
noname#113783

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

  • ベストアンサー
  • Wr5
  • ベストアンサー率53% (2177/4070)
回答No.1

TrackPopupMenu()での表示であれば…はみ出すことはないと思いますが… 環境はどうなんでしょうか? # 縦方向ではみ出す(スクリーンサイズより項目が多い)場合は…OSが適切に処理してくれるのではないかと。 # 試したことはありませんが…クラシックスタイルのスタートメニューのようにスクロールできるかと…

noname#113783
質問者

お礼

なりました! てっきりならないものと思い込んでいました。 回答ありがとうございました。

関連するQ&A

  • メニューバーのショートカットキー(Win32API)

    リソーススクリプトとWin32APIでメニューバーの付いているウィンドウズアプリケーションを作りました。 メニュー内のポップアップはAlt+キーで開けるように"ポップアップの文字列(&H)"としておいたのですが、実際にショートカットで開こうとすると、Alt押しっぱなし+キーでは開けず、Altを押してメニューバーを選択状態にした後にキーで選択する、といった風にしか開けませんでした。 しかし多くのアプリケーションではAlt押しっぱなし+キーでもポップアップが開けます。そうする為にはWM_SYSKEYDOWNを処理してポップアップを開くようにする以外に方法はないでしょうか? 回答よろしくお願いします。

  • ポップアップメニューがおかしいです。

    ポップアップメニューや右クリックメニューが透明に表示されています。見にくくてしょうがありません。だれか助けてください。。。。

  • 押されたキーにてポップアップメニューを切り替える

    OS:XP SP2 アプリ:Excel 2002 ワークシート上で右クリックにてポップアップメニューが表示されますが、Ctrl+右クリック、Shirf+右クリック、Alt+右クリックにて、独自のポップアップメニューを表示させようてしています。 プロジェクトにクラスモジュールを追加し下記の様に宣言しています。 Private WithEvents App As Application Private Sub Class_Initialize() Set App = Application End Sub 右クリックイベント内で現在押されているキーを判断することはできないでしょうか? Private Sub App_SheetBeforeRightClick(ByVal Sh As Object, ByVal Target As Range, Cancel As Boolean) ここで押されたキーにて表示するメニューを切り替える End Sub 独自のポップアップメニューの追加/表示はできています。 ご教授のほど宜しくお願いします。

  • ポップアップメニュー

    ポップアップメニューについて質問させて頂きます。 リストビュー上で右クリックしたときにポップアップメニューを表示させているのですが、このポップアップメニューの項目がクリックされた時のイベントの取り方が分かりません。 ご存知の方、宜しくお願いします。 環境はVisual Studio6.0 Windows2000です

  • タスクトレイのポップアップメニュー

    こんにちわ。 タスクトレイにアイコンを登録し、右クリックでポップアップメニューを表示しています。 そのポップアップを表示している状態でデスクトップを左クリックしてもメニューが消えないのはなぜでしょうか?ポップアップされたメニューをクリックしないとメニューが消えてくれません。 何かのイベントでメニューを消す処理をいれておくのでしょうか? どなたか宜しくお願いします。 (VB6 SP5で作成しました。)

  • WM_TIMERからポップアップメニューを閉じるには?

    質問させて頂きます。 現在C++にてWin32SDKを使用し開発を行っております そこで、メインウィンドウが非表示の時にもポップアップメニューを表示するようにしているのですが 非表示の際、ホットキーからポップアップメニューを表示すると ポップアップメニュー以外をクリックしても消えますが WM_TIMER等、一定時間経過時に表示した場合 ポップアップメニュー以外をクリックしても消えません WM_HOTKEYでは SetForegroundWindow関数でアクティブにした後に TrackPopupMenu関数でポップアップメニューを表示して 関係ない所をクリックされてもうまく消えます WM_TIMERでもWM_HOTKEYと同じ処理をしても上手くいきません タスクトレイの右クリックと同じく TrackPopupMenu関数の後にWM_NULLをポストしてもメニューは消えません 何か上手く解決出来る方法は無いでしょうか? どうぞよろしくお願いします。

  • ポップアップメニュー位置について

    Windows95で「スタート」ボタンをクリックしたときのポップアップメニュー位置 が左端から2cmほど右にずれて出てくる様になってしまいました。 理由と対策教えて頂けないでしょうか。

  • ポップアップメニューのカスタマイズについて

    ポップアップメニューのカスタマイズについて  ワードで文字列を選択し、右クリックするとポップアップメニューが表示される。そのメニューの内容をカスタマイズしたい。  ポップメニューでフォント、文字サイズ、太字、斜体文字などが選択できるようになっているが、それに下線、傍点などを加えたい。また不必要な文字色、蛍光ペン、段落などは削除したい。  カスタマイズの方法があればお教え願いたい。よろしくお願いします。 OS Windows 7 Word 2007 Atok 2008

  • 右クリックでポップアップメニューを表示したい

    Visual Basic6.0右クリック時にポップアップメニュー(コンテキストメニュー)を表示したいのですが、Webで調べてもよくわかりませんでした。メニューエディタを使って、メニューを作成することはできましたが、フォームの上段に表示されるメニューしか作成できません。MouseUpイベントを使用して右クリックを判別するところまではわかりましたが、肝心のポップアップメニューのメニューの作り方、使用方法をご存知の方いらっしゃいましたらご回答よろしくお願いします。

  • ポップアップ画面が消えない

    WIN Vistaでインターネットエクスプローラを起動すると画面の右下にポップアップが表示し、マウスでクリックしても(右、左共)何も反応せず、消えません。表示されてる内容は、ヘルプアイコンに続き****Webと表示されます。これって、ウィルス感染したのでしょうか?(ウィルス対策ソフトは何も使っていません)。このポップアップ画面を消す方法はないのでしょうか?

専門家に質問してみよう