Visualizzazione dei risultati da 1 a 4 su 4
  1. #1

    [VB6] posizione assoluta di Ctrl sullo schermo

    avete qualche routine che determini la posizione assoluta di un controllo sullo schermo ?
    esempio ho un TextBox annidato dentro un frame dentro una picture in una form(child) che è in una MDI
    Il sistema semplice è dare i rifermenti TOP LEFT di tutte le posizioni calcolare con gli scaleheight e scalewidth ecc. e ci si arriva.

    Ho provato a testare i container ma mi incasino.

    Se i controlli di cui conoscere la posizione sono tanti i tempi di programmazione diventano infiniti. quello che cerco è una routine che me li riporti a livello di SCREEN.TOP e SCREEN.LEFT dandogli solo i riferimenti del controllo.

    Grazie anticipate

  2. #2
    Utente di HTML.it L'avatar di gibra
    Registrato dal
    Apr 2008
    residenza
    Italy
    Messaggi
    4,244
    Puoi farlo solo per i controlli 'veri' cioè quelli che espongono la proprietà hWnd, per cui sono esclusi Label, Shape, Line, ecc...

    Il codice è questo:

    codice:
    ' Dichiarazioni
    Private Declare Function GetWindowRect Lib "user32" _
        (ByVal hwnd As Long, lpRect As RECT) As Long
    Private Type RECT
        Left As Long
        Top As Long
        Right As Long
        Bottom As Long
    End Type
    
    Public Sub GetControlPosition(ByVal hWnd As Long)
        Dim r As Long
        Dim wCtrl As Long 'larghezza finestra
        Dim hCtrl As Long  'altezza finestra
        Dim rc As RECT
        r = GetWindowRect(hWnd, rc)
        wCtrl = (rc.Right - rc.Left)
        hCtrl = (rc.Bottom - rc.Top)
    End Sub
    Ovviamente come avviene con tutte le funzioni API i valori ricavati sono in pixels , che eventualmente puoi convertire in Twips moltiplicandoli per Screen.TwipsPerPixelX e Screen.TwipsPerPixelY.

    Ad esempio:
    rc.Left * Screen.TwipsPerPixelX
    wCtrl * Screen.TwipsPerPixelX


  3. #3

    1Gg il bello è... che funziona

    1GigaGrazie a gibra
    funziona è anche + di quello che cercavo
    (anche se al primo test non ho applicato il twinperpixel come mi avevi detto)

  4. #4

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.