Sign Up

Sign Up to our social questions and Answers Engine to ask questions, answer people’s questions, and connect with other people.

Have an account? Sign In

Have an account? Sign In Now

Sign In

Login to our social questions & Answers Engine to ask questions answer people’s questions & connect with other people.

Sign Up Here

Forgot Password?

Don't have account, Sign Up Here

Forgot Password

Lost your password? Please enter your email address. You will receive a link and will create a new password via email.

Have an account? Sign In Now

You must login to ask a question.

Forgot Password?

Need An Account, Sign Up Here

Please briefly explain why you feel this question should be reported.

Please briefly explain why you feel this answer should be reported.

Please briefly explain why you feel this user should be reported.

Sign InSign Up

The Archive Base

The Archive Base Logo The Archive Base Logo

The Archive Base Navigation

  • SEARCH
  • Home
  • About Us
  • Blog
  • Contact Us
Search
Ask A Question

Mobile menu

Close
Ask a Question
  • Home
  • Add group
  • Groups page
  • Feed
  • User Profile
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Buy Points
  • Users
  • Help
  • Buy Theme
  • SEARCH
Home/ Questions/Q 6154501
In Process

The Archive Base Latest Questions

Editorial Team
  • 0
Editorial Team
Asked: May 23, 20262026-05-23T20:16:26+00:00 2026-05-23T20:16:26+00:00

I hava a TreeView in VB6 that uses a PopupMenu when a Node is

  • 0

I hava a TreeView in VB6 that uses a PopupMenu when a Node is right clicked. As the VB6 PopupMenu defaults its position to the mouse coordinates the menu appears at the right place.

What I want to accomplish is that the Popupmenu appears at the right place too on a KeyDown event when a TreeView Node is selected. How can I do this?

  • 1 1 Answer
  • 0 Views
  • 0 Followers
  • 0
Share
  • Facebook
  • Report

Leave an answer
Cancel reply

You must login to add an answer.

Forgot Password?

Need An Account, Sign Up Here

1 Answer

  • Voted
  • Oldest
  • Recent
  • Random
  1. Editorial Team
    Editorial Team
    2026-05-23T20:16:27+00:00Added an answer on May 23, 2026 at 8:16 pm

    You need to obtain coordinates of the item. For that you need to first obtain its handle. And when you get the rect, you must translate it to form coordinates.

    Private Declare Function SendMessage Lib "user32.dll" Alias "SendMessageA" (ByVal hwnd As Long, ByVal wMsg As Long, ByVal wParam As Long, ByRef lParam As Any) As Long
    Private Declare Function MapWindowPoints Lib "user32.dll" (ByVal hwndFrom As Long, ByVal hwndTo As Long, ByRef lppt As Any, ByVal cPoints As Long) As Long
    
    Private Type RECT
      Left As Long
      Top As Long
      Right As Long
      Bottom As Long
    End Type
    
    Private Type RECTF
      Left As Single
      Top As Single
      Right As Single
      Bottom As Single
    End Type
    
    Private Const TV_FIRST As Long = &H1100&
    Private Const TVM_GETITEMRECT As Long = (TV_FIRST + 4)
    Private Const TVM_GETNEXTITEM As Long = (TV_FIRST + 10)
    Private Const TVGN_CARET As Long = &H9&
    
    
    Private Function GetSelectedItemRect(ByVal tv As TreeView, ByRef outRect As RECTF) As Boolean
      Dim hItem As Long
      hItem = SendMessage(tv.hwnd, TVM_GETNEXTITEM, TVGN_CARET, ByVal 0&)
    
      If hItem Then
        Dim r As RECT
        r.Left = hItem
    
        If SendMessage(tv.hwnd, TVM_GETITEMRECT, 1, r) Then
          MapWindowPoints tv.hwnd, Me.hwnd, r, 2
    
          outRect.Left = Me.ScaleX(r.Left, vbPixels, Me.ScaleMode)
          outRect.Top = Me.ScaleY(r.Top, vbPixels, Me.ScaleMode)
          outRect.Right = Me.ScaleX(r.Right, vbPixels, Me.ScaleMode)
          outRect.Bottom = Me.ScaleY(r.Bottom, vbPixels, Me.ScaleMode)
    
          GetSelectedItemRect = True
        End If
      End If
    
    End Function
    

    Usage:

    Dim r As RECT
    
    If GetSelectedItemRect(TreeView1, r) Then
      PopupMenu whatever, , r.Right, r.Top
    End If
    
    • 0
    • Reply
    • Share
      Share
      • Share on Facebook
      • Share on Twitter
      • Share on LinkedIn
      • Share on WhatsApp
      • Report

Sidebar

Related Questions

I hava a Tower with the position Vector2 that shoots a target when i
I hava read from Khalid Mugal and others that the conditional operator is right
I hava a java application that uses Buffers to pass object around between threads.
I hava a CSV file that I want to treat as source code. Essentially
I hava a form (form_remote_tag) that updates a comments section. The form is in
I hava a function that looks something like this: require(config.php); function displayGta() { (...
i hava a class that hold a list for each request but each request
I hava a xml doc (and complex element) that is similar to this example:
I hava a script that consist of hello world and the hello and world
I hava an application that is in flex 3 and we are migrating it

Explore

  • Home
  • Add group
  • Groups page
  • Communities
  • Questions
    • New Questions
    • Trending Questions
    • Must read Questions
    • Hot Questions
  • Polls
  • Tags
  • Badges
  • Users
  • Help
  • SEARCH

Footer

© 2021 The Archive Base. All Rights Reserved
With Love by The Archive Base

Insert/edit link

Enter the destination URL

Or link to existing content

    No search term specified. Showing recent items. Search or use up and down arrow keys to select an item.