我在自定义控件中模仿标准窗体的右上角图标的功能,如下代码Private Sub ImgIcon_DblClick()
    Unload UserControl.Parent
End SubPrivate Sub ImgIcon_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    If Button = 1 Then
        Dim pt As POINTAPI
        Dim lngMenuID As Long
        GetCursorPos pt
        lngMenuID = TrackPopupMenu(GetSystemMenu(UserControl.Parent.hWnd, False), TPM_LEFTALIGN Or TPM_RETURNCMD, pt.X, pt.Y, 0&, UserControl.Parent.hWnd, ByVal 0&)
        If lngMenuID <> 0 Then SendMessage UserControl.Parent.hWnd, WM_SYSCOMMAND, lngMenuID, 0&
    End If
End Sub
但是双击时间根本就不产生,该怎么办啊?

解决方案 »

  1.   

    应该是左上角图标吧?把Button = 1改为Button = 2
      

  2.   

    你发送Close消息试试:SendMessage UserControl.Parent.hWnd, WM_SYSCOMMAND, SC_CLOSE, 0&
      

  3.   

    产生的,而且先是MOUSEDOWN,然后是DBLCLICK,是因为第二次的单击使菜单消失(你有见过双击产生菜单的事情吗?)
      

  4.   


    是左上角的图标,
    你看VB标准窗体左上角的图标,我们左键单击的时候弹出系统菜单,双击的时候直接退出,我要的就是这个效果。问题就是我如果在我的 ImgIcon的鼠标按下的事件中写入弹出系统菜单的代码,双击事件就不发生了。
      

  5.   

    标准窗体左上角的图标用鼠标左键和右键单击都会弹出系统菜单,我认为如果自己做,只响应鼠标的双击和右击事件即可,也就是在你的代码中把Button = 1改为Button = 2,但是像你的代码中只响应左键单击而不响应右击是绝对不合适的。