Einzelnen Beitrag anzeigen

Benutzerbild von MasterEvil
MasterEvil

Registriert seit: 12. Feb 2005
Ort: Hannover
234 Beiträge
 
Delphi 7 Enterprise
 
#8

Re: Zeichnen in Non-Client-Area unter Vista

  Alt 1. Dez 2008, 17:28
Hallo,

erstmal vielen Dank! Das hat mir schon sehr geholfen.
Leider setzt er die NCR-Policy bei mir nicht um
Das Result ist immer false.
Bei mir sieht das so aus:
Delphi-Quellcode:
function SetNCRendering(WindowHandle: HWND; Enable: Boolean): Boolean;
var
  Hr : HRESULT;
  Policy : TDWMNCRENDERINGPOLICY;
begin
  Result:=true;
  if WinIsVista then
  begin
    Result:=false;
    hDWMDLL:=LoadLibrary('DWMAPI.DLL');
    if hDWMDLL<>0 then
    begin
      @DwmSetWindowAttribute:=GetProcAddress(hDWMDLL,'DwmSetWindowAttribute');
      if @DwmSetWindowAttribute<>nil then
      begin
        if Enable then Policy:=DWMNCRP_ENABLED
        else Policy:=DWMNCRP_DISABLED;
        Hr:=DwmSetWindowAttribute(WindowHandle,DWMWA_NCRENDERING_POLICY,@Policy,SizeOf(Policy));
        Result:=Hr=S_OK;
      end;

      FreeLibrary(hDWMDLL);
    end;
  end;
end;
Ich muss es ja vorallem aktivieren, damit ich eben in die NC Area zeichnen kann.
Er ruft die Routine auch auf, aber Hr ist leider nicht S_OK.
Eine Idee?

Gruß,
Steffen
  Mit Zitat antworten Zitat