Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Minimalna velicina forme?

[es] :: Visual Basic 6 :: Minimalna velicina forme?

[ Pregleda: 3113 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Minimalna velicina forme?21.07.2004. u 02:35 - pre 217 meseci
Pitanje je jednostavno:
kako da odredim minimalnu velicinu forme tako da je korisnik ne moze smanjivati koliko hoce vec samo do odredjene granice???
 
Odgovor na temu

VRKY

Član broj: 21087
Poruke: 4690
*.net.htnet.hr



+8 Profil

icon Re: Minimalna velicina forme?21.07.2004. u 07:50 - pre 217 meseci
DEsno u Propertisu forme odaberi:
BorderStyle i stavi 1.Fixed Singel ili 4.Fixed To.... i onda odrediš veličinu forme...
POZdraV
 
Odgovor na temu

Mashinovodja
Beograd

Član broj: 30447
Poruke: 36
62.108.97.*



Profil

icon Re: Minimalna velicina forme?21.07.2004. u 07:50 - pre 217 meseci
Ako mislis na velicinu u pikselima, onda nema pravila i velicina zavisi od toga sta imas na formi i sta hoces da uvek ostane vidljivo. Ako je pitanje bilo kako da obezbedis da korisnik ne smanji dimenzije forme ispod neke vrednosti, onda je najbolje da u dogadjaju Resize forme testiras da li su tekuce vrednosti Me.Width i Me.Height forme manje od minimalnih, pa ako jesu, vrati na minimalne koje smatras pogodnim za konkretnu formu.
 
Odgovor na temu

Shadowed
Vojvodina

Član broj: 649
Poruke: 12819



+4754 Profil

icon Re: Minimalna velicina forme?21.07.2004. u 08:03 - pre 217 meseci
Jedna jednostavna varijanta ti je:
Code:
Private Sub Form_Resize()
    If Me.Width < X Then Me.Width = X    'X je minimalna sirina
    If Me.Height < Y Then Me.Height = Y  'Y je minivalna visina          
End Sub

Ali ce ti u ovom slucaju forma pri pokusaju smanjivanja na manju velicinu treperiti a i moze doci do nezeljenih efekata (zavisno od programa) jer se ona na trenutak ipak smanji vise nego sto bi zeleo.
Drugi nacin je pomocu API-ja ali sada nemam vremena da napisem code ali pogledaj SetWindowPos funkciju (i eventualno SetWindowPlacement).
 
Odgovor na temu

Aleksandar Ružičić
Software Architect, Appricot d.o.o.
Beograd

Član broj: 26939
Poruke: 2881

Jabber: krckoorascic@gmail.com
Sajt: krcko.net


+44 Profil

icon Re: Minimalna velicina forme?22.07.2004. u 01:28 - pre 217 meseci
Hvala shadowed, nisam se setio API-Guidea kada sam postavljao ovu temu...
 
Odgovor na temu

[email protected]

Član broj: 25553
Poruke: 136



+2 Profil

icon Re: Minimalna velicina forme?30.05.2005. u 19:16 - pre 206 meseci
Code:

Public Declare Function SetWindowPos Lib "user32" Alias "SetWindowPos" _
(ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, _
ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long


Nije mi bas najbolje jasno kako iskoristiti ovu API funkciju!
Moze'l mi neko pojasniti sta trebam jos dodati / izmijeniti da npr. min. velcina bude 1000 x 1000...

cik pogodi sta imam za veceru...

 
Odgovor na temu

Marko_L
Beograd

Član broj: 20532
Poruke: 2885
*.yubc.net.

Jabber: Marko_L@elitesecurity.org


+828 Profil

icon Re: Minimalna velicina forme?30.05.2005. u 20:28 - pre 206 meseci
Ti si tu samo deklarisao funkciju, a nigde je nisi upotrebio.Da bi nešto uradio sa njom moraš da je pozoveš negde iz koda.
Recimo ovako
Code:
Private Sub Form_Load()
SetWindowPos Me.Hwnd, 0, 0 ,0, 300, 200, 0
End Sub

i to će ti postaviti veličinu na 300X200 pixela, dakle obrati pažnju, pixela, a ne twips-ova.No, to ti neće rešiti problem sa minimalnom veličinom forme.Evo jednog rešenja koje može to da odradi.
Ovo možeš da staviš u modul recimo
Code:
Option Explicit

Declare Function CallWindowProc Lib "user32.dll" Alias "CallWindowProcA" ( _
ByVal lpPrevWndFunc As Long, _
ByVal hwnd As Long, _
ByVal Msg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

Declare Function SetWindowLong Lib "user32.dll" Alias "SetWindowLongA" ( _
ByVal hwnd As Long, _
ByVal nIndex As Long, _
ByVal dwNewLong As Long) As Long

Declare Sub CopyMemory Lib "kernel32.dll" Alias "RtlMoveMemory" ( _
pDest As Any, _
pSrc As Any, _
ByVal ByteLen As Long)

Type POINTAPI
   x As Long
   y As Long
End Type

Type MINMAXINFO
   ptReserved As POINTAPI
   ptMaxSize As POINTAPI
   ptMaxPosition As POINTAPI
   ptMinTrackSize As POINTAPI
   ptMaxTrackSize As POINTAPI
End Type

Public Const GWL_WNDPROC = (-4)
Public Const WM_GETMINMAXINFO = &H24

Dim lpPrevWndProc As Long

Public Sub Hook()
   lpPrevWndProc = SetWindowLong(Form1.hwnd, GWL_WNDPROC, AddressOf WindowProc)
End Sub

Function WindowProc( _
ByVal hw As Long, _
ByVal uMsg As Long, _
ByVal wParam As Long, _
ByVal lParam As Long) As Long

   If uMsg = WM_GETMINMAXINFO Then
      Dim MinMax As MINMAXINFO
      CopyMemory MinMax, ByVal lParam, Len(MinMax)
      MinMax.ptMinTrackSize.x = 1000 'ovde podesavas minimalnu X velicinu u pixelima
      MinMax.ptMinTrackSize.y = 1000 ' ovde podesavas minimalnu Y velicinu u pixelima
      CopyMemory ByVal lParam, MinMax, Len(MinMax)
   Else
      WindowProc = CallWindowProc(lpPrevWndProc, hw, uMsg, wParam, lParam)
   End If
End Function

Public Sub Unhook()
   SetWindowLong Form1.hwnd, GWL_WNDPROC, lpPrevWndProc
End Sub

A onda u kodu radis hook i unhook, tj. najbolje je da hukuješ na početku, a unhukuješ na kraju, odnosno
Code:
Private Sub Form_Load()
Hook
End Sub

hukuješ kad se forma učita, a
Code:
Private Sub Form_Unload(Cancel As Integer)
UnHook
End Sub

a unhukuješ po zatvaranju forme.
-Odracuonogakomijedrpiorazmaknicu.
-Ne rxdi mi txstxturx, kxd god hocu dx
ukucxm "x" onx ukucx "x".
-Ko kaaz e da ja neuummem da kuuca
m.
-Piše "Insert disk 3", a jedva sam i ova
dva ugurao u drajv
-Postoje samo dve osobe kojima
verujem, jedna sam ja, a druga nisi ti
 
Odgovor na temu

[email protected]

Član broj: 25553
Poruke: 136



+2 Profil

icon Re: Minimalna velicina forme?30.05.2005. u 22:27 - pre 206 meseci
Hvala ti na odgovoru Marko, eee ovako sam nesto i trazio...

cik pogodi sta imam za veceru...

 
Odgovor na temu

[es] :: Visual Basic 6 :: Minimalna velicina forme?

[ Pregleda: 3113 | Odgovora: 7 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.