Q&A

  • tray icon 에 popup메뉴 넣는방법
안녕하세요!

tray icon관련 질문이 있거던요.



여기와 보니까 tray icon생성에 관해서 나와있어서 잘 썼는데요...

실행되고 있는 icon에 마우스 오른쪽을 클릭했을때 팝업메뉴를 보여주고요..

팝업메뉴에 있는 내용을 실행하고 싶거든요...



어떻게 해야할지 몰라서요...

여러분들께 도움을 청하고자 합니다.

아시는 분들 있으시면 꼬옥 알려주셔요~~







여러분들! 새해 복 많이 받으세요~



1  COMMENTS
  • Profile
    홍세비 2000.01.13 02:26
    궁금이 wrote:

    > 안녕하세요!

    > tray icon관련 질문이 있거던요.

    >

    > 여기와 보니까 tray icon생성에 관해서 나와있어서 잘 썼는데요...

    > 실행되고 있는 icon에 마우스 오른쪽을 클릭했을때 팝업메뉴를 보여주고요..

    > 팝업메뉴에 있는 내용을 실행하고 싶거든요...

    >

    > 어떻게 해야할지 몰라서요...

    > 여러분들께 도움을 청하고자 합니다.

    > 아시는 분들 있으시면 꼬옥 알려주셔요~~

    >

    >

    >

    > 여러분들! 새해 복 많이 받으세요~

    >

    아래 예제는 프로그램의 아이콘으로 트레이에 나타내고, 오른쪽 마우스 버튼 클릭시

    팝업메뉴를 보여주는 프로그램입니다.

    도움이 되셨기를 바랍니다.



    http://myhome.netsgo.com/parkhs98 에 오시면 더 많은 정보가 있습니다.





    unit Unit1;



    interface



    uses

    Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,

    Menus, ShellAPi;



    type

    TMainForm = class(TForm)

    TrayPop: TPopupMenu;

    aaa1: TMenuItem;

    aaa2: TMenuItem;

    bbb1: TMenuItem;

    bbb2: TMenuItem;

    procedure FormCreate(Sender: TObject);

    private

    { Private declarations }

    public

    { Public declarations }

    procedure WndProc( var Message : TMessage ); override;



    end;



    var

    MainForm: TMainForm;

    iconData : TNotifyIconData;



    implementation



    {$R *.DFM}

    const MY_SHOWFORM_ID = WM_USER+1;





    procedure TMainForm.WndProc( var Message : TMessage );

    var

    p : TPoint;

    begin

    case Message.Msg of

    MY_SHOWFORM_ID:

    case Message.lParam of

    WM_LBUTTONDOWN: Self.Show;

    WM_RBUTTONDOWN: begin

    GetCursorPos(p);

    TrayPop.Popup(p.x, p.y);

    // 마우스의 위치를 알아내서 그위치에 팝업메뉴를 띄운다

    end;

    end;

    end;

    inherited;

    end;

    procedure TMainForm.FormCreate(Sender: TObject);

    begin

    with IconData do

    begin

    cbSize := SizeOf ( IconData );

    Wnd := Handle;

    uID := 100;

    uFlags := NIF_MESSAGE + NIF_ICON + NIF_TIP;

    uCallbackMessage := WM_USER + 1;

    hIcon := Application.Icon.Handle;

    StrPCopy(szTip, Application.Title);

    end;

    Shell_NotifyIcon( NIM_ADD, @IconData );

    // 프로그램의 아이콘을 트레이에...

    end;



    end.