HWND eines Fensters bekommen
-
Ich versuche an das HWND eines Fensters zu kommen. ich bekomme jedoch mittels der Handle funktion nur einen IntPtr...ich hoffe ihr könnt mir weiterhelfen
-
-
das hab ich schon versucht, aber da meckert er dann zu laufzeit...und sonst hab ich nicht wirklich was dazu gefunden...also wenn euch sonst noch was schlaues einfällt...
Edit:
hier nochmal etwas genauer was ich versucht habeForm1 f;
HWND hwnd = (HWND)f.Handle.ToPointer();//funktioniert aber leider nicht
-
Ja, das Handle ist ev. noch nicht erzeugt worden. Lies mal die Doku dazu. Ich glaube mich zu erinnern, dass da was stand.
Simon
-
geht nicht ist keine Fehlerbeschreibung. aber da meckert er dann zu laufzeit... auch nicht. Bitte mal ins Detail gehen. Fehlermeldungen Posten etc.
-
ok dann werd ich mal ein bischen weiter ausholen...eigentlich brauche ich das HWND um ein direct3d9 anwendung zu erstellen, ich wollte zur darstellung eigentlich ein Panel von Form1 verwenden
LPDIRECT3D9 _pD3D = NULL;
_pD3D->CreateDevice(D3DADAPTER_DEFAULT, D3DDEVTYPE_HAL,"und hier die übergabe von HWND",D3DCREATE_SOFTWARE_VERTEXPROCESSING,&pp, &_pDevice);
funktioniert auch alles super wenn ich mir ein eigenes Fenster erstelle, allerdings wollte ich gerne dafür ein Panel von Form1 benutzen. So und nun erscheint zur laufzeit die Fehlermeldung...
"Eine nicht behandelte Ausnahme des Typs "System.NullReferenceException" ist in DirectX-Form.exe aufgetreten.
Zusätzliche Informationen: Der Objektverweis wurde nicht auf eine Objektinstanz festgelegt."Edit:
Achja die Fehlermeldung erscheint sobalt ich die Szene rendern will, ich hab die abfrage ob mein LPDIRECT3DDEVICE9 _pDevice NULL ist rausgenommen um überhaupt mal eine reaktion zu bekommen...
Und natürlich gehört da noch ein bischen mehr Quellcode dazu, wollt ich hier nur nichr alles reinposten...und ich mache die Übergabe in der Funktion Form1(void) hinter InitializeComponent() also in den eigentlichen Konstruktor
-
oh leute sorry das tut mir so leid...ich hatte lediglich vergessen das LPDIRECT3DDEVICE9 _pDevice mit NULL zu initialisieren bevor ich die Funktion aufgerufen habe...aber trotzdem vielen Dank^^