WinApi Mouse [gelöst]
-
Hi!
Wie muss ich meine WinApi bearbeiten, damit ich im Fenstermodus das fenster transformieren kann? also oben an der Titel leiste ziehen und die 3 buttons für minimieren, vollbildschirm und schließen benutuzen kann?
sind das alles MSGs die ich WindowProc bearbeiten muss?
gruß Chris
-
Lies ein Tutorial.
Ja es sind alles Fensternachrichten und alle diese Funktionen werden von der DefWindowProc behandelt. Also musst Du theoretisch gar nichts machen.
-
also ich hab jetzt einige tutorials angesehen und auch mehrere WinApi SampleBrowser durchsucht, und hab keine gescheite WindowProc gefunden.
im DXUT Framework finde ich nicht mal die WindowProc funktion. C++ WinApi hat das scheinbar auch alles selbst entworfen. und in der Tutorialliste für WinApi hier im forum habe ich auch kein tutorial gefunden das WindowMove() behandelt.gibt es denn kein DX Tutorial das soetwas behandelt? ich bin doch sicherlich nicht der erste der seine DX app, im Fenstermodus benutzen will.
-
Was verwendest du für Window Styles?
-
Ohne das ich mich nun näher damit beschäftigt hätte findet man mit google und
"dxut winproc" doch sowas ...INT WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance , LPSTR lpCmdLine , int nShowCmd) { DXUTSetCallbackMsgProc(GameLib::GameWindow::WndProc); DXUTSetCallbackFrameMove(GameLib::GameWindow::OnUpdate); DXUTSetCallbackD3D9DeviceReset(GameLib::GameWindow::deviceReset); DXUTSetCallbackD3D9DeviceLost(GameLib::GameWindow::deviceLost); DXUTSetCallbackD3D9FrameRender(GameLib::GameWindow::Render); GameLib::gWnd = new GameLib::GameWindow(hInstance, nShowCmd, NULL); DXUTInit(); ... } LRESULT CALLBACK GameWindow::WndProc(HWND inHwnd, UINT inMsg, WPARAM inWParam, LPARAM inLParam , bool* pbNoFurtherProcessing , void* pUserContext) { switch(inMsg) { case WM_CLOSE: delete gWnd; PostMessage(inHwnd, WM_QUIT, 0, 0); break; } return DefWindowProc(inHwnd , inMsg , inWParam , inLParam); }
siehe: http://www.gamedev.net/topic/512051-c-directx-dxut-woes/
-
stimmt danke.
ich hab nur gestern herrausgefunden das ich diese befehle gar nicht benötige. es hat sich herrausgestellt das ich mist mit meinem DirectX input gemacht habe. nach der umstellung auf die normalen WinProc msg hab ich jetzt den gewünschten erfolg erzielt.
vielen dank euch