Einzelnen Beitrag anzeigen

Astat

Registriert seit: 2. Dez 2009
Ort: München
320 Beiträge
 
Lazarus
 
#3

Re: Border fremder Anwendung verstecken

  Alt 8. Dez 2009, 03:54
Hallo Björn Ole, dies sollte dir weiterhelfen.

Delphi-Quellcode:

function SetParent(hWndChild, hWndNewParent: HWND; NewParentWidth,
  NewParentHeight: integer): boolean;
var
  hWndPrevParent: HWND;
  PrefWindowLong: DWORD;
begin
  hWndPrevParent := Windows.SetParent(hWndChild, hWndNewParent);
  if hWndPrevParent = 0 then
    raise exception.create('ERROR: SetParent failed!');

  //-- Rahmen entfernen
  PrefWindowLong := SetWindowLong(hWndChild, GWL_STYLE,
    GetWindowLong(hWndChild ,GWL_STYLE) and WS_BORDER);
  if PrefWindowLong = 0 then
    raise exception.create('ERROR: PrefWindowLong(1)');

  //-- Titelmenü entfernen
  PrefWindowLong := SetWindowLong(hWndChild, GWL_STYLE,
    GetWindowLong(hWndChild,GWL_STYLE) and not WS_CAPTION);
  if PrefWindowLong = 0 then
    raise exception.create('ERROR: PrefWindowLong(2)');


  //- Auf Paranet skalieren
  if not SetWindowPos(hWndChild, 0 ,0, 0, 0, 0, SWP_NOSIZE or
    SWP_NOMOVE or SWP_NOZORDER or SWP_FRAMECHANGED) then
      raise exception.create('ERROR: PrefWindowLong(3)');

  //-- Neu zeichnen
  if not SetWindowPos(hWndChild, 0, 0, 0, NewParentWidth,
    NewParentHeight, SWP_NOZORDER or SWP_SHOWWINDOW) then
      raise exception.create('ERROR: PrefWindowLong(4)');

  result := true;
end;

hoffe etwas geholfen zu haben.

lg. Astat
Lanthan Astat
06810110811210410503210511511603209711003210010110 9032084097103
03211611111604403209711003210010110903210010510103 2108101116122
11610103209010110510810103206711110010103210511003 2068101108112
10410503210310111509910411410510109810111003211910 5114100046
  Mit Zitat antworten Zitat