when i called "GUI_ExecDialogBox"before , GUI_StroreKeyMsg will create a WM_KEY in WM_CALLBACK???why?

    This site uses cookies. By continuing to browse this site, you are agreeing to our Cookie Policy.

    • when i called "GUI_ExecDialogBox"before , GUI_StroreKeyMsg will create a WM_KEY in WM_CALLBACK???why?


      when i called "GUI_ExecDialogBox"before , i called GUI_StroreKeyMsg or GUI_SendKeyMsg , and whether or not I called GUI_GetKey(), this action will create a WM_KEY in _cbCallback ???why??? plz , help me thx~~

      i think it may be a bug
    • Hi,

      GUI_StoreKeyMsg() adds WM_KEY messages to a buffer. Without any windows, the buffered messages cannot be sent anywhere.

      As soon as you create the dialog and GUI_Exec() is called (GUI_ExecDialogBox() calls GUI_Exec()), the stored key message gets sent to the window that has input focus which is the dialog window.

      Best regards,
      Florian
    • but i don't want to go to the WM_KEY in _cbCallback when i called GUI_ExecDialogBox() at first, how can i avoid ? because GUI_StoreKeyMsg() or GUI_SendKeyMsg() i used to Physical keys, The dialog box will pop up and disappear right away, thank u for your solution

      The post was edited 1 time, last by xiongda ().

    • Hi,

      If the dialog window has the focus, you will always land in WM_KEY, when a key message has been stored. So to avoid landing in WM_KEY, no key message should be stored. If there's no other way, you can add a guard to the WM_KEY case to control when the key is handled.

      Best regards,
      Florian