<...zurück>

"SMART-MINIMIZE" abschalten

Sehr lange hat's gedauert, und dann kam doch nicht das heraus, was sich viele Anwender wünschten: Eine Applikation-Beenden-Taste. Es sieht zwar so aus, ist es aber leider nicht: das "Smart-Minimize" von PocketPC 2002. Für Programmierer, die verhindern wollen oder müssen, daß der Anwender die aktuelle Anwendung "ausblendet" und andere "wichtige" Dinge tut, entsteht ein neues Problem: Wie um alles in der Welt wird man Smart-Minimize wieder los??

Deklarationsteil:

Public Const GWL_STYLE = (-16)
Public Const WS_NONAVDONEBUTTON = &H10000

Public Declare Function GetWindowLong Lib "Coredll" Alias "GetWindowLongW" (ByVal hwnd As Long, ByVal nIndex As Long) As Long
Public Declare Function SetWindowLong Lib "Coredll" Alias "SetWindowLongW" (ByVal hwnd As Long, ByVal nIndex As Long, ByVal dwNewLong As Long) As Long

Der unten gezeigte Code ermittelt den aktuellen Fenterstil, addiert das Stil-Bit WS_NONAVDONEBUTTON hinzu und setzt den Fensterstil auf den neuen Wert. Dieser Trick sollte in der Load-Routine des Formulars ausgeführt werden, oder man muß selbst für die Form-Aktualisierung sorgen. (z.B durch SetWindowPos).

Beispiel:
 
Private Sub Form_Load()
  Dim lngStyle As Long
  lngStyle = GetWindowLong(Me.hwnd, GWL_STYLE)
  lngStyle = lngStyle + WS_NONAVDONEBUTTON
  SetWindowLong Me.hwnd, GWL_STYLE, lngStyle
End Sub

<...zurück>