ClientToScreen获得按钮的位置,然后...

解决方案 »

  1.   

    Y位置 = Command1.Top + Command1.Height
    X位置 = Command1.Left = Command1.Width
      

  2.   

    to thirdapple(第三只苹果) 
    老兄不知道你有没有试过,这是想到的第一个做法,可是行不通啊
      

  3.   

    to thirdapple(第三只苹果) 
    老兄不知道你有没有试过,这是想到的第一个做法,可是行不通啊
    to :griefforyou(为你伤心) 
    位置还是不定
      

  4.   

    to thirdapple(第三只苹果) 
    老兄不知道你有没有试过,这是想到的第一个做法,可是行不通啊
    to :griefforyou(为你伤心) 
    位置还是不定
      

  5.   

    我想问一下,你的“菜单”实现原理?是用窗体实现的还是用PictureBox实现的??不明白的话没办法帮你。
      

  6.   

    P.s. 最后你能够把你的代码发上来,OK?
      

  7.   

    代码一时发不上来,大体是这样的,我用一个picture控件,鼠标按下时,在picture的左边和上边画一条白线,在picture的下边和右边画一条黑线,鼠标弹起时,上左为黑,下右为白,这样就有弹起和按下的感觉,然后在鼠标按下时,弹出一个自定义菜单,怎么定这个菜单的位置
      

  8.   

    是不是这样的PicCmd?
    '用Picture控件实现自画Command Button
    '放入一个Picture控件,命名为PicCmd
    Private Sub Form_Load()
    PicCmd.ScaleMode = 3
    PicCmd.AutoRedraw = True
    PicCmd.BorderStyle = 0
    PicCmd.Line (0, 0)-(1, PicCmd.ScaleHeight), RGB(255, 255, 255), BF
    PicCmd.Line (0, 0)-(PicCmd.ScaleWidth, 1), RGB(255, 255, 255), BF
    PicCmd.Line (PicCmd.ScaleWidth - 2, 0)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(128, 128, 128), BF
    PicCmd.Line (0, PicCmd.ScaleHeight - 2)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(128, 128, 128), BF
    PicCmd.Tag = "一个按钮" '用PicCmd的Tag属性存储按钮文字
    PicCmd.ForeColor = RGB(255, 0, 0) '可以修改文字颜色
    PicCmd.CurrentX = (PicCmd.ScaleWidth - PicCmd.TextWidth(PicCmd.Tag)) / 2  '如果是英文,请将12改为6(下面不改)
    PicCmd.CurrentY = (PicCmd.ScaleHeight - PicCmd.TextHeight(PicCmd.Tag)) / 2
    PicCmd.Print PicCmd.Tag
    End Sub
    Private Sub PicCmd_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single)
    PicCmd.Line (0, 0)-(1, PicCmd.ScaleHeight), RGB(128, 128, 128), BF
    PicCmd.Line (0, 0)-(PicCmd.ScaleWidth, 1), RGB(128, 128, 128), BF
    PicCmd.Line (PicCmd.ScaleWidth - 2, 0)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(255, 255, 255), BF
    PicCmd.Line (0, PicCmd.ScaleHeight - 2)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(255, 255, 255), BF
    End Sub
    Private Sub PicCmd_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)
    PicCmd.Line (0, 0)-(1, PicCmd.ScaleHeight), RGB(255, 255, 255), BF
    PicCmd.Line (0, 0)-(PicCmd.ScaleWidth, 1), RGB(255, 255, 255), BF
    PicCmd.Line (PicCmd.ScaleWidth - 2, 0)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(128, 128, 128), BF
    PicCmd.Line (0, PicCmd.ScaleHeight - 2)-(PicCmd.ScaleWidth, PicCmd.ScaleHeight), RGB(128, 128, 128), BF
    End Sub
    '还是要打上“原创”的记号
    --------------------------------------------------------------------
    代码可以这样写的啊:
    Private Sub PicCmd_Click()
    PopupMenu aa, , PicCmd.Left, PicCmd.Top + PicCmd.Height
    End Sub
    注:aa是你要弹出的Menu的名称。
    --------------------------------------------------------------------
    这段代码已经通过我电脑上的测试,保证可靠性。
    --------------------------------------------------------------------
    欢迎使用Fantasia Photo(http://3rdapple.51.net/FantasiaPhoto.htm)
    --------------------------------------------------------------------
    Made by Thirdapple's Studio(http://3rdapple.51.net/)