Såvidt jeg kan se afhænger bredden på hovedmenuen af de tekster man skriver. Det er jo dig selv der gør det, eller indlæses menuteksterne fra en fil som brugeren kan redigere i? - Sprogskift el.lign. Du kan jo placere din 'popup-form' i forhold til enten skærmens eller hovedformens øverste, venstre hjørne.
f.eks. formpopup.left = form1.left + 800
Hvis menu-teksterne kan ændres må du jo tælle tegn og omregne til twips. Men lidt usikkert bliver det, fordi skriftegn er proportionale (m er bredere end l)
Ja, jeg kunne benytte TextWidth(), men der er et lille mellemrum mellem teksterne i menuerne, som ikke bliver regnet med, og jeg vil ikke bare hardcode et tal, som du foreslår. Da menupunkternes skrifttype kan variere fra bruger til bruger, vil TextWidth heller ikke altid være brugbar.
Hvis jeg på en eller anden måde kunne få fat på et menupunkts hWnd, kunne jeg benytte en funktion som GetWindowRect til at hente bredde osv... men jeg ved ikke hvordan jeg skal gøre det?!
Jeg sætter point op. Måske kan det vække lidt opsigt...
Woohoo, jeg fandt ud af det! :) Man kan sammen med den funktion sjh nævnte (GetMenu) og funktionen GetMenuItemRect få fat på menuens fire hjørner! Tusind tak for dit input, sjh! Læg venligst et svar, så du kan få dine velfortjente point! :)
.. og her er koden:
'I et modul:
Public Declare Function GetMenu Lib "user32" (ByVal hwnd As Long) As Long
Public Declare Function GetMenuItemRect Lib "user32" ( _ ByVal hwnd As Long, _ ByVal hMenu As Long, _ ByVal uItem As Long, _ lprcItem As RECT _ ) As Long
Public Type RECT vLeft As Long vTop As Long vRight As Long vBottom As Long End Type
'I en form:
Private Sub Form_Load()
Dim vTemp As RECT, retvar As Variant, hMenu As Long hMenu = GetMenu(Form1.hwnd) retvar = GetMenuItemRect(Form1.hwnd, hMenu, 1, vTemp)
Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.