Hi Leute,
also nachdem ich nun schon eine Weile google, einschlägige Seiten besucht habe und auch dieses Forum durchsucht habe, steh ich nach wie vor vor meinem Problem mit dem
DC.
Ich beschreib es euch mal:
Ich erzeuge mit SDL ein Fenster (also kein Windows Standartform), indem später eine
OpenGL Simulation abläuft aber das ist eher nebensächlich und für das Problem nicht relevant.
Es gibt von SDL keine mitgelieferte Funktion, um die Position des Fensters festzulegen, deswegen will ich mir das fuer Windows und Linux separat schreiben.
Was ich bisher habe:
Delphi-Quellcode:
TSE_Window =
class(TObject)
private
fHandle : HDC;
fParentHandle : HDC;
[...]
public
property Handle : HDC
read fHandle;
property ParentHandle : HDC
read fParentHandle;
[...]
end;
constructor TSE_Window.Create (
const NWindowCaption, NWindowIcon: pChar; NTop, NLeft, NScreenWidth, NScreenHeight: Integer; NBitPerPixel: Cardinal = 32; NFullScreen: Boolean = FALSE);
var text:pchar;
begin
inherited Create;
fHandle := CreateDC('
DISPLAY',
nil,
nil,
nil);
fParentHandle := GetDesktopWindow();
[...Windowcreate; Videoflags,Attribute,Extensions lesen, usw...]
SetWindowPos(
Handle,HWND_TOP,NLeft,NTop,NScreenWidth,NScreenHeight,SWP_NOZORDER);
end;
Das Problem ist nun, es ist vollkommen egal, mit welchen Werten ich das Create aufrufe, die Position des Fensters stimmt nie. Erzeuge ich den
DC falsch? Oder ruf ich die Funktion irgendwie falsch auf? Tapp hier grad echt im Dunkeln.
Danke schonmal im Voraus.