[DX 10] Disable Alt+Enter

Für Fragen zu Grafik APIs wie DirectX und OpenGL sowie Shaderprogrammierung.
Antworten
kkrahl
Beiträge: 56
Registriert: 20.10.2008, 13:41

[DX 10] Disable Alt+Enter

Beitrag von kkrahl »

Hi

Ich will für mein Programm das Windows-Command Alt+Enter abschalten aber mit der Funktionalität mit der es funktionieren sollte geht es leider nicht.

Code: Alles auswählen

			IDXGIFactory* dxgiFactory;
			if(DXGIFAILED(CreateDXGIFactory (__uuidof(IDXGIFactory), (void**)&dxgiFactory)))
				     return Core::Logging::LogError(L"CreateDXGIFactory failed!");

			if(DXGIFAILED(dxgiFactory->MakeWindowAssociation(this->mWindow, 0 | DXGI_MWA_NO_WINDOW_CHANGES | DXGI_MWA_NO_ALT_ENTER)))
				     return Core::Logging::LogError(L"MakeWindowAssociation failed!");
Hat von euch jemand eine Ahnung warum es nicht geht, bzw weis jemand wie es funktioniert?

Danke für eure Hilfe.

Karl
AlinghiFan
Beiträge: 6
Registriert: 02.06.2009, 09:06
Echter Name: Matej Kostalek

Re: [DX 10] Disable Alt+Enter

Beitrag von AlinghiFan »

Hallo

Ich bin noch ein totaler D3D10 Anfänger, habe aber folgendes rausgefunden. Wenn ich mein Device mit D3D10CreateDeviceAndSwapChain() erstellt habe, funktioniert MakeWindowAssociation() nicht.
Also habe ich folgende Methode versucht und es hat geklappt.

Code: Alles auswählen

IDXGIFactory *pFactory = NULL;
IID iid = __uuidof(IDXGIFactory);

HRESULT hr = ::CreateDXGIFactory(iid, reinterpret_cast<void**>(&pFactory));

if (FAILED(hr))
{
    PostError(L"::CreateDXGIFactory", hr);
    return false;
}

hr = ::D3D10CreateDevice(
    NULL, 
    D3D10_DRIVER_TYPE_HARDWARE, 
    NULL, 
    NULL, 
    D3D10_SDK_VERSION, 
    &m_pDevice);

if (FAILED(hr))
{
    SAVE_RELEASE(pFactory);
    PostError(L"::D3D10CreateDevice", hr);
    return false;
}

hr = pFactory->CreateSwapChain(m_pDevice, &sd, &m_pSwapChain);

if (FAILED(hr))
{	
    SAVE_RELEASE(pFactory);
    PostError(L"IDXGIFactory::CreateSwapChain", hr);
    return false;
}
	
pFactory->MakeWindowAssociation(
    m_hWnd, 
    NULL | 
    DXGI_MWA_NO_WINDOW_CHANGES | 
    DXGI_MWA_NO_ALT_ENTER);
	
SAVE_RELEASE(pFactory);	
Versuch mal diese Variante.

Grüsse
Antworten