Federico1976 (Normal User)
Rookie
Messaggi: 42
Iscritto: 23/03/2009
|
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
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
Private sub Form1_load()
Me.Location = new Point(x,y)
end sub
|
|
Federico1976 (Normal User)
Rookie
Messaggi: 42
Iscritto: 23/03/2009
|
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
|
|
Thejuster (Admin)
Guru^2
Messaggi: 2305
Iscritto: 04/05/2008
|
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.
|
|
Federico1976 (Normal User)
Rookie
Messaggi: 42
Iscritto: 23/03/2009
|
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"
|
|
Federico1976 (Normal User)
Rookie
Messaggi: 42
Iscritto: 23/03/2009
|
Grazie all'indicazione di "Thejuster" 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.
Codice sorgente - presumibilmente VB.NET |
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
|
|
|
salva94 (Normal User)
Rookie
Messaggi: 57
Iscritto: 02/01/2010
|
Scusate ma tutti questi code Api , li fate voi? Cioè dove posso imparare queste strutture e le varie tipo di API?
|
|
Federico_VbNet_Programmer (Normal User)
Expert
Messaggi: 222
Iscritto: 03/04/2010
|
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 |
|
salva94 (Normal User)
Rookie
Messaggi: 57
Iscritto: 02/01/2010
|
Io intendevo , siete voi a creare questi tipi di code usando le API oppure ci sono code preimpostati?
|
|