3

私はこれをタイマーで実行しようとしています:

Application.Minimize;
ShowWindow( Application.handle, SW_HIDE );

それは永遠にコードにあり、ポップアップメニューをアクティブにしていると機能しないことを発見しました。MDI親ウィンドウを最小化しません。

このコードを実行する前にポップアップメニューを閉じることができれば、大丈夫だと思います。問題は、このコードがMDI親にあり、現在のポップアップメニューがどこにあるかわからないことです。それが別のフォームのツールバーの一部であるか、これがツールバーのフォームであるか、右クリックの結果であるか、スペースバーの横にある一見無意味なキーであるかは関係ありません。

それで、私のプログラム全体でアクティブなポップアップメニューを非表示にする方法はありますか?

また、この問題を回避するために私が使用しているものよりも優れたコードの塊があれば、それも素晴らしい情報になります。

4

1 に答える 1

7

ポップアップメニューを閉じるには、次を使用できます

  if GetCapture <> 0 then
    SendMessage(GetCapture, WM_CANCELMODE, 0, 0);

フォームを最小化しようとする前に、コードで。

于 2009-12-07T21:49:33.737 に答える