如题!!!

解决方案 »

  1.   

    不是!我去掉了窗体的标题栏!但是我想在窗体的任意地方点击右键都会显示标题栏的右键菜单
    用SendMessage怎样显示呢???
      

  2.   

    [DllImport("User32.dll")] 
    static extern IntPtr FindWindow(string lpClassName,string lpWindowName);
    [DllImport("User32.dll")] 
    static extern int SendMessage(IntPtr hWnd,int msg,int wParam,ref int lParam);
    用this.Handle得到当前窗口的Handle,然后传递给SendMessage  IntPtr 参数,消息编号根据你需要使用的功能自己查阅
      

  3.   

    这样试试看:
    [DllImport("User32.dll")]
    public static extern IntPtr GetSystemMenu(IntPtr hWnd, int bRevert);
    [DllImport("user32.dll", CharSet = CharSet.Auto, ExactSpelling = true)]
    public static extern bool TrackPopupMenuEx(IntPtr hmenu, int fuFlags, int x, int y, IntPtr hwnd, TPMPARAMS tpm);
    private void btnShowSysMenu_Click(object sender, EventArgs e)
    {
    IntPtr hMenu;
    Point location = this.Location;
    hMenu = GetSystemMenu(this.Handle, 0);
    TrackPopupMenuEx(hMenu, 0x42, location.X, location.Y, this.Handle, null);
    }
      

  4.   

    你可以向系统菜单添加自己的菜单项以方便使用,比如用AppendMenu来添加一个菜单项.
      

  5.   

    学习下 
    API 我还不是不大会
      

  6.   

    TO:hbxtlhx(平民百姓)谢谢!我试试
      

  7.   

    本来已经是可以显示出来的。可就是响应不了菜单的选项之前有位朋友给了我一段代码。他说可以响应的!可是我不知道怎么用大家请看:http://community.csdn.net/Expert/topic/5305/5305417.xml?temp=.8464319
      

  8.   

    using System.Runtime.InteropServices;const uint TPM_LEFTBUTTON = 0;
    const uint TPM_RIGHTBUTTON = 2;
    const uint TPM_LEFTALIGN = 0;
    const uint TPM_CENTERALIGN = 4;
    const uint TPM_RIGHTALIGN = 8;
    const uint TPM_TOPALIGN = 0;
    const uint TPM_VCENTERALIGN = 0x10;
    const uint TPM_BOTTOMALIGN = 0x20;
    const uint TPM_RETURNCMD = 0x100;
    const uint WM_SYSCOMMAND = 0x0112;#region DllImport
    [DllImport("User32.dll")]
    static extern IntPtr GetSystemMenu(IntPtr hWnd, bool bRevert);
    [DllImport("User32.dll")]
    static extern bool GetCursorPos(out Point lpPoint);
    [DllImport("User32.dll")]
    static extern int TrackPopupMenu(IntPtr hMenu, uint uFlags,
        int x, int y, int nReserved, IntPtr hWnd, out Rectangle prcRect);
    [DllImport("User32.DLL")]
    public static extern int SendMessage(IntPtr hWnd, uint Msg, int wParam, int lParam);
    #endregionprivate void button1_Click(object sender, EventArgs e)
    {
        Point vPoint;
        Rectangle vRect;
        GetCursorPos(out vPoint);
        SendMessage(Handle, WM_SYSCOMMAND, TrackPopupMenu(
            GetSystemMenu(Handle, false),
            TPM_RETURNCMD | TPM_LEFTBUTTON, vPoint.X, vPoint.Y, 
            0, Handle, out vRect), 0);
    }
      

  9.   

    加入TPM_RETURNCMD就会返回用户点击菜单的Command值
    然后发送WM_SYSCOMMAND消息模拟