always use HWND first in WM_COMMAND handler to avoid mixing the controls with the same id
git-svn-id: https://svn.wxwidgets.org/svn/wx/wxWidgets/trunk@12813 c3d73ce0-8a6f-49c7-b76d-6d57e0e08775
This commit is contained in:
@@ -3536,19 +3536,21 @@ bool wxWindowMSW::HandleCommand(WXWORD id, WXWORD cmd, WXHWND control)
|
||||
#endif // wxUSE_MENUS_NATIVE
|
||||
|
||||
wxWindow *win = NULL;
|
||||
if ( cmd == 0 || cmd == 1 ) // menu or accel - use id
|
||||
|
||||
// first try to find it from HWND - this works even with the broken
|
||||
// programs using the same ids for different controls
|
||||
if ( control )
|
||||
{
|
||||
win = wxFindWinFromHandle(control);
|
||||
}
|
||||
|
||||
// try the id
|
||||
if ( !win )
|
||||
{
|
||||
// must cast to a signed type before comparing with other ids!
|
||||
win = FindItem((signed short)id);
|
||||
}
|
||||
|
||||
if ( !win && control )
|
||||
{
|
||||
// find it from HWND - this works even with the broken programs using
|
||||
// the same ids for different controls
|
||||
win = wxFindWinFromHandle(control);
|
||||
}
|
||||
|
||||
if ( win )
|
||||
{
|
||||
return win->MSWCommand(cmd, id);
|
||||
|
Reference in New Issue
Block a user