Newsgroup: it.comp.lang.visual-basic
Titolo: centrare la form nello schermo, come ??

Ciao a tutti !!
dovrei centrare la form nello schermo, come ??
--
mailto: 
denis....@fantacalcio.zzn.com
Torneo di Fantacalcio: 
http://carden.spedia.net

 wrote in message
85n3c5$nep$1...@fe1.cs.interbusiness.it...


 wrote


 prova un po', ciao, pal
Mi sembra di aver capito .... solo empiricamente ... che questo sia dovuto
alla Barra di Avvio, se è "AutoNascondente" oppure no !!!
Xò sono solo mie supposizioni !!!!
--
Ciaps
Stracca
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Cerca le risposte alle tue domande sul Sito Comune del
newsgroup it.comp.lang.visual-basic: 
http://www.murialdo.it/it_lang_vb
Magari prima leggi l'Help in linea!
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -

 Xò sono solo mie supposizioni !!!!
non credo, dovrei cercare meglio, ma credo sia solo il fatto che lo sguardo
tende a stare un po' sopra la linea d'orizzonte, se cosi' posso chiamare la
mediana orizz dello schermo.
fatto sta che sta meglio :)
ciao, a.
[ps ot - ci manca solo che nevichi...]

 alla Barra di Avvio, se č "AutoNascondente" oppure no !!!
Io uso per centrare ogni tipo di form la seguente funzioncina passatami da
un collega americano, che centra anche le Child Mdi, e si accorge se c'č la
barra di Win 95 in qualunque parte dello schermo, adattando cosě la Client
area.
Spero serva anche ad altri.
' ---------------------------------------------------------
' Type declaration
' ---------------------------------------------------------
  Private Type RECT
      Left     As Long
      Top      As Long
      Right    As Long
      Bottom   As Long
  End Type
' ---------------------------------------------------------
' API Declarations
' ---------------------------------------------------------
  Private Declare Function GetDesktopWindow Lib "user32" () As Long
  Private Declare Function GetParent Lib "user32" (ByVal hwnd As Long) As
Long
  Private Declare Function GetClientRect Lib "user32" (ByVal hwnd As Long,
lpRect As RECT) As Long
  Private Declare Function FindWindow Lib "user32" Alias "FindWindowA"
(ByVal lpClassName As String, ByVal lpWindowName As String) As Long
  Private Declare Function GetWindowRect Lib "user32" (ByVal hwnd As Long,
lpRect As RECT) As Long
' ---------------------------------------------------------
' return variable declaration
' ---------------------------------------------------------
  Private apiRetVal As Long
Sub Centrami(frm As Form)
' ---------------------------------------------------------
' Define local variable
' ---------------------------------------------------------
  Dim ClientRect    As RECT           'Holds the area that the form is to be
centered in
  Dim TaskBarRect   As RECT           'Holds the TaskBar area if in Win95
  Dim x             As Variant        'temp LeftPosition
  Dim Y             As Variant        'temp TopPosition
  Dim bFrmChild     As Boolean        ' č una form di tipo Child?
' ---------------------------------------------------------
' Check if the form is a MDIChild.
' ---------------------------------------------------------
  On Error Resume Next
  bFrmChild = frm.MDIChild
  If Err <> 0 Then
    bFrmChild = False
  End If
  On Error GoTo 0
  If bFrmChild Then
      '
      ' Center it in the MDIParent.
      GetClientRect GetParent(frm.hwnd), ClientRect
  Else  'Center it in the available desktop area.
      '
      ' Get the Desktop area
      Call GetClientRect(GetDesktopWindow(), ClientRect)
      '
      ' Check for the Task Bar.
      apiRetVal = FindWindow("Shell_TrayWnd", vbNullString)
      '
      ' If there is a taskbar, ie WIN95 then adjust the ClientRect.
      If apiRetVal Then
         Call GetWindowRect(apiRetVal, TaskBarRect)
         '
         If (TaskBarRect.Right - TaskBarRect.Left) > (TaskBarRect.Bottom -
TaskBarRect.Top) Then
            '
            ' TaskBar at the Top of Screen.
            If TaskBarRect.Top <= 0 Then
               ClientRect.Top = ClientRect.Top + TaskBarRect.Bottom
            '
            ' TaskBar at the Bottom of Screen.
            Else
               ClientRect.Bottom = ClientRect.Bottom - (TaskBarRect.Bottom -
TaskBarRect.Top)
            End If
         Else
            '
            ' TaskBar is on the Left side of the Screen.
            If TaskBarRect.Left <= 0 Then
               ClientRect.Left = ClientRect.Left + TaskBarRect.Right
            '
            ' TaskBar is on the Right side of the Screen.
            Else
               ClientRect.Right = ClientRect.Right - (TaskBarRect.Right -
TaskBarRect.Left)
            End If
         End If   '[TaskBar on Top of Screen?]
      End If      '[if apiRetVal]
  End If
' ---------------------------------------------------------
' Center the Form
' ---------------------------------------------------------
  With frm
       x = (((ClientRect.Right - ClientRect.Left) * Screen.TwipsPerPixelX) -
.Width) / 2
       Y = (((ClientRect.Bottom - ClientRect.Top) * Screen.TwipsPerPixelY) -
.Height) / 2
       .Move x, Y
  End With
End Sub

area.
Fantastica!
teddy...@hotmail.com
ICQ 7044062
Como - Italy