Applied patch [ 740012 ] GetKeyState returns 16-Bit value on WindowsNT

git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@20683 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
Julian Smart 2003-05-21 18:43:03 +00:00
parent 0fc7f695ce
commit 1fdf858b87
3 changed files with 16 additions and 4 deletions

View File

@ -286,12 +286,18 @@ HCURSOR wxBitmapToHCURSOR(const wxBitmap& bmp, int hotSpotX, int hotSpotY);
// get the current state of SHIFT/CTRL keys
inline bool wxIsShiftDown()
{
return (::GetKeyState(VK_SHIFT) & 0x100) != 0;
// return (::GetKeyState(VK_SHIFT) & 0x100) != 0;
// Returns different negative values on WinME and WinNT,
// so simply test for negative value.
return ::GetKeyState(VK_SHIFT) < 0;
}
inline bool wxIsCtrlDown()
{
return (::GetKeyState(VK_CONTROL) & 0x100) != 0;
// return (::GetKeyState(VK_CONTROL) & 0x100) != 0;
// Returns different negative values on WinME and WinNT,
// so simply test for negative value.
return ::GetKeyState(VK_CONTROL) < 0;
}
// wrapper around GetWindowRect() and GetClientRect() APIs doing error checking

View File

@ -2398,7 +2398,10 @@ bool wxTreeCtrl::MSWOnNotify(int idCtrl, WXLPARAM lParam, WXLPARAM *result)
// 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;

View File

@ -3965,7 +3965,10 @@ void wxWindowMSW::InitMouseEvent(wxMouseEvent& event,
event.m_leftDown = (flags & MK_LBUTTON) != 0;
event.m_middleDown = (flags & MK_MBUTTON) != 0;
event.m_rightDown = (flags & MK_RBUTTON) != 0;
event.m_altDown = (::GetKeyState(VK_MENU) & 0x80000000) != 0;
// event.m_altDown = (::GetKeyState(VK_MENU) & 0x80000000) != 0;
// Returns different negative values on WinME and WinNT,
// so simply test for negative value.
event.m_altDown = ::GetKeyState(VK_MENU) < 0;
event.SetTimestamp(s_currentMsg.time);
event.m_eventObject = this;