Seite 1 von 1

[C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 03.10.2010, 20:48
von Raven280438
Hi,

ich bin Anfänger in der C# Programmierung.
Als Lern-Projekt bin ich im Moment dabei, einen Map-Editor für ein 2D RPG, was ich später schreiben will, zu programmieren.

Meine Frage: Ist es möglich, DirectX nur für einen bestimmtes Element in einem WindowsForm zu nutzen? Bei den Tutorials die ich bisher gefunden habe, wird das komplette Form mit DirectX erstellt (per Fullscreen). Ich würde aber gerne z.b. Scrollbars für das Element (z.B. eine PictureBox) benutzen.

Ist das möglich?


Gruß

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 03.10.2010, 21:46
von Despotist
Ob es so möglich ist weiß ich nicht. Bei C++ geht es (Zerbi hatte da glaub ich ein Tut dazu oder wars im Buch? Da wurde ein Raumschiff in ein Windows Fenster gerendert).

Meine Frage ist warum du nicht XNA nutzt wenn du schon C# verwendest? Ist ein Wrapper um DX der vieles einfacher macht. Gerade für Anfänger (wie mich) finde ich es sehr geeignet da man sich nicht um den Urschleim kümmern muss.

Edit: Also mit XNA scheints zu gehen: http://www.google.de/#hl=de&source=hp&q ... 33a925b4f9

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 04.10.2010, 03:59
von dowhilefor
DirectX braucht für gewöhnlich nur ein HWND. Egal ob Fenster, Button, Label oder sonstwas ... jedes Control unter Windows hat so ein Handle. Im normalfall kommst du in WinForms über die Property "Handle" daran was vom Typ IntPtr sein sollte.
Kleine Warnung allerdings, wenn du DirectX mit C# benutzt rate ich dir von Managed DirectX ab. Microsoft unterstützt das schon länger nicht mehr. Wenn du ein 1zu1 DX haben möchtest, nimm SlimDX, wenn du gerne etwas mehr Hilfe haben möchtest schau dir mal XNA an. Beides sehr gute Bibliotheken.

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 11.10.2010, 11:44
von sherminator
Hallo,
selbstverständlich ist es möglich eine DX View in einem Windows Form zu verwenden, alles was du dazu benötigst ist das MDX (Managed Direct X SDK).

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 11.10.2010, 12:40
von dowhilefor
alles was du dazu benötigst ist das MDX (Managed Direct X SDK)
Wie schon gesagt, MDX wird nicht weiterentwickelt. Alternativen sind XNA oder SlimDX.

Re: [C#] Anfängerfrage: DirectX in WindowsForm nutzen

Verfasst: 11.10.2010, 20:42
von Jiba
Wenn du Managed Direct3D verwendest dann übergiebst du statt dem Form einfach ein anderes Steuerelement, denn new Device(...) erwartet ein Control Objekt und alle Steuerelemente sind von Control abgeleitet.

Wenn du NICHT Managed benutzt übergiebst du die Eigenschaft Handle des Controls.

Falls du mehr als in ein Control Rendern willst must du ein SwapChain erzeugen.

C#:
SwapChain sc = new SwapChain(device, presentParams);

C++:
HRESULT IDirect3DDevice9::CreateAdditionalSwapChain( D3DPRESENT_PARAMETERS* pPresentationParameters, IDirect3DSwapChain9** ppSwapChain );

Ich hoffe ich konnte dir helfen.