var
    MHandle:    THandle;
    mRect:      TRect;
    P:          Tpoint;
begin
    mRect:=Rect(0,0,100,100);
    mhandle:=getsystemmenu(Application.handle,false);
    GetCursorPos(P);
    TrackPopupMenu(MHandle,TPM_RIGHTALIGN,P.x+1,P.y+1,0,Application.handle,@mRect);
end;

解决方案 »

  1.   

    TO netlib(河外孤星):非常感谢大侠的帮助,但也许是小弟没有说明白吧。我是说:前用户点击系统图标时,“应用程序”或者说是“操作系统”,他是如何弹出“系统菜单”的,也就是当窗口的消息回调函数检测到用户是点击了“系统图标”这个“消息”或者说是“标题栏区域”时,“是用什么东东或什么方法或什么函数”之类的东西实现弹出“系统菜单”的。多谢netlib(河外孤星) 了。
    请各位看官指教!
      

  2.   

    有一点可以解释,那就是在这个下拉菜单弹出之前,应用程序是发送了一个WM_INITMENUPOPUP消息的,由这个消息来控制菜单的弹出。
      

  3.   

    如果对什么感兴趣菜单按钮之类的话,用 VB 里的 Spy++ 或 Delphi 里的那个什么来者的东西跟踪一下,就知道了(我喜欢Spy++,尽管我用 Delphi 编程,Delphi 自带那个自我感觉太差了)
      

  4.   

    呵呵,上面说的是呀,我们这些可怜的Borland程序员,开发东西时候却要用着微软的MSDN和Visual Studio组件。要想查点资料,或者想抓两条消息,还得去用微软的家伙,哎……
      

  5.   

    to  deldelmeme979(急?急也没用):
    先致谢!
    如此说来,发WM_INITMENUPOPUP消息可以弹出系统菜单了,我立马就试,谢谢!