J'ai une application de console à partir de laquelle je crée une fenêtre.C++ Win32 Window ne répond pas
Je peux très bien faire des choses dans la fenêtre. Mais la fenêtre ne répond pas/incontrôlable par l'utilisateur.
Dès que vous passez la souris sur la fenêtre, vous obtenez le curseur en forme de sablier et vous ne pouvez pas déplacer la fenêtre.
Ce qui pourrait être à l'origine de cela?
EDIT:
WNDCLASSEX wndClass; // Window class
ZeroMemory(&wndClass, sizeof(wndClass)); // Clear the window class structure
wndClass.cbSize = sizeof(WNDCLASSEX);
wndClass.style = CS_HREDRAW | CS_VREDRAW | CS_CLASSDC;
wndClass.lpfnWndProc = DefWindowProc;
wndClass.cbClsExtra = 0;
wndClass.cbWndExtra = 0;
wndClass.hInstance = nullptr;
wndClass.hCursor = LoadCursor(NULL, IDC_ARROW);
wndClass.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);
wndClass.lpszMenuName = NULL;//MAKEINTRESOURCE(IDR_MAINMENU);
wndClass.lpszClassName = _classname.c_str();
wndClass.hIconSm = 0;
if (RegisterClassEx(&wndClass) == 0)// Attemp to register the window class
throw std::exception("WINDOW ERROR: Failed to register the window class!");
DWORD dwStyle = 0; // Window styles
DWORD dwExStyle = 0; // Extended window styles
dwStyle = WS_OVERLAPPEDWINDOW | // Creates an overlapping window
WS_CLIPCHILDREN | // Doesn"t draw within child windows
WS_CLIPSIBLINGS; // Doesn"t draw within sibling windows
//adjust window size
RECT rMain;
rMain.left = 0;
rMain.right = width;
rMain.top = 0;
rMain.bottom = height;
AdjustWindowRect(&rMain, dwStyle, 0);
// Attempt to create the actual window
_hwnd = CreateWindowEx(dwExStyle,
className,
windowTitle,
dwStyle,
0, 0,
rMain.right - rMain.left,
rMain.bottom - rMain.top,
nullptr,
0,
nullptr,
0);
ShowWindow(_hwnd, SW_SHOW);
SetForegroundWindow(_hwnd);
SetFocus(_hwnd);
Il serait extrêmement utile si vous aviez un extrait de code (minimal) qui illustre ce problème. –
Gérez-vous les messages WM_MOUSE * dans votre WindowProc? – munissor
Je ne gère rien, je viens d'utiliser DefWindowProc. – ronag