Oppure

Loading
01/04/10 12:39
Federico1976
Salve Vorrei Impostare Il client del form per diseggnare graficamente i controlli nel restante posto con MyBase.ClientSize inposto la dimensione ma come posso impostare le coordinate?
scusate l'ingnoranza
aaa
02/04/10 8:36
Thejuster
Private sub Form1_load()

Me.Location = new Point(x,y)

end sub


mire.forumfree.it/ - Mire Engine
C# UI Designer
02/04/10 8:58
Federico1976
Ti ringrazio di avermi risposto
Ma scusa con me.Location Non sposto tutto il form?
a me servirebbe Spostare l'area client del form Per disegnare Tipo la barra sopra ed escludere quella zona dall'area client dove andranno inseriti altri controlli
aaa
02/04/10 11:57
Thejuster
non ho capito bene,
ma se intendi spostare l'area client devi fare riferimento alle winapi.
per allargare la barra blu dell'applicazione

se invece intendi far rimanere uno spazio ti basta posizionarti all'evento
paint del form e da li fai la manipolazione del design.
mire.forumfree.it/ - Mire Engine
C# UI Designer
02/04/10 12:24
Federico1976
A io la barra blu la escludevo con Me.FormBorderStyle = Windows.Forms.FormBorderStyle.None
poi ridisegnavo con graphics i vari controlli topo la barra blu e i bordi e ridefinivo l'area client ma non riesco a capire se sia possibile
Posso solo allargare la barra blu dell'applicazione ?
Posso poi ridesegnare La barra Blu ?
La mia Intensione e di ridisegnare e di fare una Skins pero lo vorei fare tutto con la class Drawing
"Grazzie ancora":hail:
aaa
06/04/10 13:30
Federico1976
Grazie all'indicazione di "Thejuster" :hail: di far riferimento alle api ho trovato del codice che risolveva il problema Posto il codice che inserito in un form ridimensiona Il Client e colora i bordi.

      Declare Function GetWindowDC Lib "user32" (ByVal hwnd As IntPtr) As IntPtr

        Private Sub AdjustClientRect(ByRef rcClient As Rect)
            rcClient.Left += 5
            rcClient.Top += 5
            rcClient.Right -= 5
            rcClient.Bottom -= 5
            'Me.ClientRectangle.Inflate(-5, -5)

        End Sub

        Structure RECT
            Public Left As Integer, Top As Integer, Right As Integer, Bottom As Integer
        End Structure
        Structure NCCALCSIZE_PARAMS
            Public rcNewWindow As Rect
            Public rcOldWindow As Rect
            Public rcClient As Rect
            Private lppos As IntPtr
        End Structure

        Protected Overloads Overrides Sub WndProc(ByRef m As Message)
            MyBase.WndProc(m)

            Const WM_NCCALCSIZE As Integer = &H83
            Select Case m.Msg
                Case WM_NCCALCSIZE 'area client

                    If m.WParam <> IntPtr.Zero Then
                        Dim rcsize As NCCALCSIZE_PARAMS = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(NCCALCSIZE_PARAMS)), NCCALCSIZE_PARAMS)
                        AdjustClientRect(rcsize.rcNewWindow)
                        Marshal.StructureToPtr(rcsize, m.LParam, False)
                    Else
                        Dim rcsize As RECT = DirectCast(Marshal.PtrToStructure(m.LParam, GetType(RECT)), RECT)
                        AdjustClientRect(rcsize)
                        Marshal.StructureToPtr(rcsize, m.LParam, False)
                    End If
                    m.Result = New IntPtr(1)
                    Return

                Case &H85 'area non client
                    Dim g As Graphics = Graphics.FromHdc(GetWindowDC(Me.Handle))

                    Dim a As New Rectangle(0, 0, Me.Width, Me.Height)

                    g.DrawRectangle(Pens.White, a)
                    g.FillRectangle(Brushes.Blue, a)
                    g.Dispose()
            End Select
        
        End Sub
aaa
06/04/10 13:57
salva94
Scusate ma tutti questi code Api , li fate voi? Cioè dove posso imparare queste strutture e le varie tipo di API?
aaa
06/04/10 15:09
Federico_VbNet_Programmer
Postato originariamente da salva94:

Scusate ma tutti questi code Api , li fate voi? Cioè dove posso imparare queste strutture e le varie tipo di API?


Le API sono li "strumenti" che windows usa per impostare varie opzioni,in questo caso il colore del bordo,e non si creano,sono già presenti,come la dll user32...
Cerca nel web e troverai ciò che vuoi fare con le API:D
aaa