Seite 1 von 1

[DX 10] Disable Alt+Enter

Verfasst: 07.12.2009, 11:20
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

Re: [DX 10] Disable Alt+Enter

Verfasst: 09.12.2009, 12:19
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