#include "wx/msw/gnuwin32/extra.h"
#endif
-#if defined(__WIN95__) && !((defined(__GNUWIN32_OLD__) || defined(__TWIN32__)) && !defined(__CYGWIN10__))
+#if defined(__WIN95__) && !(defined(__GNUWIN32_OLD__) && !defined(__CYGWIN10__))
#include <commctrl.h>
#endif
// similar to the ones from a "real" WM_KEYDOWN so that
// CreateKeyEvent() works correctly
WXLPARAM lParam =
- (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16;
+// (::GetKeyState(VK_MENU) & 0x100 ? KF_ALTDOWN : 0) << 16;
+ // Returns different negative values on WinME and WinNT,
+ // so simply test for negative value.
+ (::GetKeyState(VK_MENU) < 0 ? KF_ALTDOWN : 0) << 16;
WXWPARAM wParam = info->wVKey;