vb@rchiv
VB Classic
VB.NET
ADO.NET
VBA
C#
Top-Preis! AP-Access-Tools-CD Volume 1  
 vb@rchiv Quick-Search: Suche startenErweiterte Suche starten   Impressum  | Datenschutz  | vb@rchiv CD Vol.6  | Shop Copyright ©2000-2025
 
zurück

 Sie sind aktuell nicht angemeldet.Funktionen: Einloggen  |  Neu registrieren  |  Suchen

Visual-Basic Einsteiger
Re: Resize eines rahmenlosen Forms  
Autor: ModeratorDieter (Moderator)
Datum: 07.10.02 21:13

Hi Flo,

Du kannst es aber so machen: Der User muss - um die Form (wohlgemerkt ohne Border) in der Größe ändern zu können, zunächst einen CommandButton anklicken (oder sonst was). Durch ein Nochmaliges Klicken auf den Button (oder sonst was) wird die Funktion zur Größenänderung wieder ausgeschaltet - quasi ein Ein-/Ausschalter

Und hier der Code:
[color=green]' zunächst die benötigten API-Deklarationen
Private Declare Function GetWindowLong Lib "user32" _
  Alias "GetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long) As Long
 
Private Declare Function SetWindowLong Lib "user32" _
  Alias "SetWindowLongA" (ByVal hwnd As Long, _
  ByVal nIndex As Long, ByVal dwNewLong As Long) As Long
 
Private Declare Function SetWindowPos Lib "user32" _
  (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
 
Private Declare Function GetDesktopWindow Lib "user32" _
  () As Long
 
Private Const SWP_NOSIZE = &H1
Private Const SWP_NOZORDER = &H4
Private Const SWP_NOMOVE = &H2
Private Const SWP_DRAWFRAME = &H20
Private Const GWL_STYLE = (-16)
Private Const WS_THICKFRAME = &H40000
Public Sub DoResize(hWndParent As Long, _
  hWndObject As Long, ByVal bStatus As Boolean)
 
  Dim Result As Long
 
  Result = GetWindowLong(hWndObject, GWL_STYLE) Or _
    WS_THICKFRAME
  If Not bStatus Then _
    Result = Result - WS_THICKFRAME
 
  SetWindowLong hWndObject, GWL_STYLE, Result
  SetWindowPos hWndObject, hWndParent, 0, 0, 0, 0, _
    SWP_NOZORDER Or SWP_NOSIZE Or SWP_NOMOVE Or _
    SWP_DRAWFRAME
End Sub
[color=green]' Größen-Änderung ein/ausschalten
Private Sub Command1_Click()
  With Command1
    Select Case .Tag
      Case "Resize"
        .Tag = ""
        DoResize Me.hwnd, Me.hwnd, False
      Case Else
        .Tag = "Resize"
        DoResize Me.hwnd, Me.hwnd, True
    End Select
  End With
End Sub

_________________________
Professionelle Entwicklerkomponenten
www.tools4vb.de

alle Nachrichten anzeigenGesamtübersicht  |  Zum Thema  |  Suchen

 ThemaViews  AutorDatum
Resize eines rahmenlosen Forms 500Flo07.10.02 20:15
Re: Resize eines rahmenlosen Forms 606ModeratorDieter07.10.02 20:49
Re: Resize eines rahmenlosen Forms 413ModeratorDieter07.10.02 21:13
Danke Dieter (oT)451Flo08.10.02 14:31

Sie sind nicht angemeldet!
Um auf diesen Beitrag zu antworten oder neue Beiträge schreiben zu können, müssen Sie sich zunächst anmelden.

Einloggen  |  Neu registrieren

Funktionen:  Zum Thema  |  GesamtübersichtSuchen 

nach obenzurück
 
   

Copyright ©2000-2025 vb@rchiv Dieter Otter
Alle Rechte vorbehalten.
Microsoft, Windows und Visual Basic sind entweder eingetragene Marken oder Marken der Microsoft Corporation in den USA und/oder anderen Ländern. Weitere auf dieser Homepage aufgeführten Produkt- und Firmennamen können geschützte Marken ihrer jeweiligen Inhaber sein.

Diese Seiten wurden optimiert für eine Bildschirmauflösung von mind. 1280x1024 Pixel