Einzelnen Beitrag anzeigen

informix05
(Gast)

n/a Beiträge
 
#23

Re: Rand eines Windows nicht anzeigen

  Alt 4. Feb 2007, 14:12
Heureka, Rand verstecken bzw. anzeigen mit SetWindowLong(...) funktiniert schon, man muss danach aber noch über SetWindowPos(...) eine SWP_FRAMECHANGED Message senden, damit Windows den geänderten Rand auch neu zeichnet:

Delphi-Quellcode:
//*** Titelleiste u. Rand eines Fenster verstecken ***
procedure TForm1.Button_HideBorderClick(Sender: TObject);
var
   dwStyle : Cardinal;
   hWnd : THandle;
begin
   hWnd := FindWindow(nil, 'PowerPoint-Bildschirmpräsentation - [gruenes_licht.pptm]');
   dwStyle := GetWindowLong(hWnd, GWL_STYLE);
   SetWindowLong(hWnd, GWL_STYLE, dwStyle and not WS_OVERLAPPEDWINDOW);
   SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOREPOSITION or SWP_NOSIZE
      or SWP_NOZORDER or SWP_FRAMECHANGED);
end;

//*** Titelleiste u. Rand eines Fenster anzeigen ***
procedure TForm1.Button_ShowBorderClick(Sender: TObject);
var
   dwStyle : Cardinal;
   hWnd : THandle;
begin
   hWnd := FindWindow(nil, 'PowerPoint-Bildschirmpräsentation - [gruenes_licht.pptm]');
   dwStyle := GetWindowLong(hWnd, GWL_STYLE);
   SetWindowLong(hWnd, GWL_STYLE, dwStyle or WS_OVERLAPPEDWINDOW);
   SetWindowPos(hWnd, 0, 0, 0, 0, 0, SWP_NOMOVE or SWP_NOREPOSITION or SWP_NOSIZE
      or SWP_NOZORDER or SWP_DRAWFRAME or SWP_FRAMECHANGED);
end;
  Mit Zitat antworten Zitat