|
|
||||
Tips > |
|||||
TrackPopupMenu で PopupMenu を表示 |
更新 : 2010/06/04 |
||||
|
|
||
解説: PopupMenu を使うと右クリック時、コントロールに関連付けられたポップアップメニューを表示できます。表示位置も指定可能なので、ことさら Win32API 関数を使うケースはそれほどないかもしれません。 しかし、同じ動作を Win32API で実現する方法を知っておくと、後々かならず役に立ちます。 今回は TrackPopupMenu 関数を利用して PopupMenu を指定位置に表示してみます。 使用例: PopupMenu を指定位置に表示しています。 コンポーネントは、 Button と PopupMenu を適当に置くだけです。 コードは Button1 の OnClick で PopupMenu1 を指定した位置に表示しています。 関数の引数は以下のようになっています。 BOOL TrackPopupMenu( HMENU hMenu, // ポップアップのハンドル UINT uFlags, // 表示方法のオプション int x, // X 座標 int y, // Y 座標 int nReserved, // 予約されていて 0 を指定 HWND hWnd, // メニューを持つウィンドウのハンドル CONST RECT *prcRect // 無視される ); 表示方法のオプションフラグを組み合わせたり、表示位置を変更してみてください。 //------------------------------------------------------------------- void __fastcall TForm1::Button1Click(TObject *Sender) { TrackPopupMenu(PopupMenu1->Handle, TPM_LEFTALIGN, Left + 200, Top + 100, 0, Handle, 0); } //------------------------------------------------------------------- |