ホーム
| アプリケーション | Tips | ダウンロード | プログラム
| コラム

CBアプリ工房


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);
}
//-------------------------------------------------------------------



[ ホーム | ページトップ | ブック | リンク | サイトマップ ]
Copyright(c) 2003 Shibu All rights reserved.