Visualizzazione dei risultati da 1 a 3 su 3
  1. #1
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291

    Ricerca dell'handle di una ComboBox.

    Non riesco a completare una fase di stampa del DataReport.
    In particolare vorrei che l'anteprima di stampa si posizionasse sulla proprietà "Adatta"; per fare ciò ho eseguito il subclassing per determinare l' handle della Toolbar del DR, per nascondere l'icona "Esporta" e per posizionare lo Zoom sul predetto valore "Adatta".
    In particolare ho usato le API GetWindow, ShowWindow e SendMessage; quest'ultima funzione per posizionare lo zoom su "Adatta".
    codice:
    'Recupera l'indirizzo della TOOLBAR - Funzione nel Modulo Tools:
        DRHwnd = DRValAtCap.hwnd
        DRHwnd = GetWindow(DRHwnd, GW_CHILD)
        DRHwnd = GetWindow(DRHwnd, GW_CHILD)
        DRHwnd = GetWindow(DRHwnd, GW_CHILD)
    
        btnPrintHWnd = GetWindow(DRHwnd, GW_CHILD)
        btnExportHwnd = GetWindow(btnPrintHWnd, GW_HWNDNEXT)
        LblHWnd = GetWindow(btnExportHwnd, GW_HWNDNEXT)
        cboZoomHWnd = GetWindow(LblHWnd, GW_HWNDNEXT)
        
    ' Nasconde il bottone di export:
        ShowWindow btnExportHwnd, False
    'Posiziona lo ZOOM
        SendMessage cboZoomHWnd, CB_SELECTSTRING, -1, ByVal "Adatta"
    In questo modo Infatti la ComboBox espone il valore "Adatta" ma non esegue il valore; per ottenere il ridimensionamento dell'immagine si deve fare click sul valore esposto.

    Un risultato, parziale, l'ho ottenuto unendo:
    codice:
    SendMessage cboZoomHWnd, CB_SELECTSTRING, -1, ByVal "Adatta"
    SendMessage cboZoomHWnd, WM_LBUTTONDOWN, 7, vbNullString
    SendMessage cboZoomHWnd, WM_LBUTTONUP, 7, vbNullString
    Solo in questo caso si ottiene la voce selezionata (ombreggiata in bleu) e la tendina della combo aperta, ma senza l'effetto click sulla voce (l'immagine non viene modificata).
    Dalle molteplici prove che ho fatto ho tratto la convinzione che l'handle ottenuto (cboZoomHWnd) sia riferito al pulsante della ComboBox e non all'area della List del controllo.
    Vi chiedo se stò sbagliando tutto o se, viceversa, è possibile ottenere il predetto riferimento in modo da inviare un messaggio che simuli il click del mouse sul valore "Adatta" che risulta già selezionato.
    Grazie !!
    LM

  2. #2
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Mi scuso con i Moderatori per la dimenticanza;
    il linguaggio è VB6
    LM

  3. #3
    Utente di HTML.it L'avatar di LMondi
    Registrato dal
    Sep 2004
    Messaggi
    1,291
    Il problema l'ho risolto, si trattava di dare la giusta sequenza di comandi. Grazie per l'attenzione.
    LM

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.