(Gast)
n/a Beiträge
|
Re: Rand eines Windows nicht anzeigen
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;
|
|
Zitat
|