Differenze tra le versioni di "Spostare o ridimensionare una finestra di un MessageBox"

Da Gambas-it.org - Wikipedia.
 
(2 versioni intermedie di uno stesso utente non sono mostrate)
Riga 1: Riga 1:
Prenderemo in considerazione sia il caso di un ''MessageBox'' generato dal codice di un programma Gambas (come ad esempio un ''Message.Info()'' ), sia il caso di quello generato da un programma esterno.
+
#REDIRECT [[Spostare_la_finestra_di_un_MessageBox]]
 
 
Bisogna premettere che anche le finestrine di un qualunque ''MessageBox'' sono normali finestre, e che, pertanto, anch'esse posseggono un proprio ID.
 
 
 
Dagli esperimenti attualmente compiuti, è risultato che un ''MessageBox'' <SPAN style="text-decoration:underline">in talune circostanze</span> - probabilmente legate al tipo di ambiente desktop grafico e/o al tema - non può essere spostato né ridimensionato. In altri casi, quando il ''MessageBox'' viene generato dal codice Gambas, esso può essere spostato solo insieme con la finestra del programma ''padre''.
 
 
 
E', invece, risultato possibile ''chiudere'' con il codice Gambas una finestra di un ''MessageBox'' comunque generato.
 
 
 
Prenderemo in considerazione, dunque, solo il caso di ''MessageBox'' che possono essere spostati e/o ridimensionati. Essi solitamente sono ''MessageBox'' generati da programmi esterni.
 
 
 
Faremo uso delle risorse dei Componenti "gb.desktop" e "gb.desktop.x11".
 
<BR>In modo particolare si potrà spostare e/o ridimensionare oppure chiudere la finestra del ''MessageBox'', appartenente ad un altro programma.
 
 
 
In questo esempio si farà in modo da filtrare le finestre eventualmente aperte, prendendo in considerazione soltanto quella del "MessageBox", purché tale finestra abbia un nome visibile (solitamente sul bordo in alto). Ciò significa che bisognerà nel seguente codice bisognerà impostare il nome visibile della finestrina del "MessageBox" da gestire.
 
<BR>Tale codice dovrà essere lanciato soltanto "dopo" l'apertura del "MessageBox" dell'altro programma.
 
'''Public''' Sub Button1_Click() 
 
 
 
  Dim dw As DesktopWindow
 
  Dim i As Integer
 
 
  For Each dw In Desktop.Windows
 
<FONT color=gray>' ''Individua la finestra del "MessageBox" dal suo "nome visibile":''</font>
 
    If dw.VisibleName = "<FONT color=gray>'''''nome_visibile_della_finestra_del_MessageBox'''''</font>" Then
 
<FONT color=gray>' ''Quindi gestisce la finestra del "MessageBox":''</font>
 
      .Move('''''x''''', '''''y''''', ''w'', ''h'')
 
<FONT color=gray>' ''...ma si potranno ovviamente anche usare:''
 
    ' .Resize(''w'', ''h'') 
 
    ' .Close</font>
 
    Endif
 
  Next
 
 
 
'''End'''
 

Versione attuale delle 20:41, 29 dic 2021