Обработка Кнопок Winapi

  • Автор темы Soph123
  • Дата начала
Статус
Закрыто для дальнейших ответов.
S

Soph123

#1
я создаю окно, у меня есть вот такой код:



#include <windows.h>


bool done=false;
bool fullscreen=true;
bool keys[256];

HGLRC hRC=NULL;
HDC hDC=NULL;
HWND hWnd=NULL;
HINSTANCE hInstance;



LRESULT CALLBACK WndProc( HWND hWnd, UINT uMsg, WPARAM wParam, LPARAM lParam)

{

switch (uMsg)

{

case WM_ACTIVATE:

{

if( !HIWORD( wParam ) )

{ active = true; }

else

{ active = false; }




case WM_SYSCOMMAND:

{

switch ( wParam )

{

case SC_SCREENSAVE:

case SC_MONITORPOWER:

return 0;

}

break;

}

case WM_CLOSE:

{

PostQuitMessage( 0 );

return 0;

}

/* case WM_KEYDOWN:

switch (wParam)
{
case keys[VK_LEFT]:

{

MessageBox(NULL, TEXT("dfgth"), TEXT("rthfc"), MB_OK);
}
break;

}*/




case WM_SIZE:

{

ReSizeGLScene( LOWORD(lParam), HIWORD(lParam) );

return 0;

}

}

return DefWindowProc( hWnd, uMsg, wParam, lParam );

}

// -------тут я окно создаю и все что с ним всязано
// далее


int WINAPI WinMain( HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow )
{
MSG msg;

if(!CreateGLWindow("OpenGL структура", 1024, 768, 32, !fullscreen))
{return 0;}
while( !done )
{

if( PeekMessage( &msg, NULL, 0, 0, PM_REMOVE ) )
{
if( msg.message == WM_QUIT )
{
done = true;
}
else
{
TranslateMessage( &msg );
DispatchMessage( &msg );
}
}
else
{ if( active )
{
DrawGLScene();
SwapBuffers( hDC );

if(keys[VK_UP])
{ MessageBox(NULL, TEXT("dbg"), TEXT("dsfbv"), MB_OK);
}
}

}
}

KillGLWindow();

return ( msg.wParam );
}

дело в том, что ни в обработчике сис сообщений нажатие при нажатии на кнопку ничего не происходить (более того пишет case expression not constant), ни в мэйне ничего не происходит....Подскажите плз, что делать в таком случае? :mellow: я в тупике
 
Статус
Закрыто для дальнейших ответов.