⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 gui_onkey.c

📁 uc-gui.rar
💻 C
字号:
/**********************************************************************                SEGGER MICROCONTROLLER SYSTEME GmbH                 **        Solutions for real time microcontroller applications        ************************************************************************                                                                    **        (c) 2002         SEGGER Microcontroller Systeme GmbH        **                                                                    **        Internet: www.segger.com    Support:  support@segger.com    **                                                                    *************************************************************************** emWin/GSC Grafical user interface for embedded applications ****emWin is protected by international copyright laws. Knowledge of thesource code may not be used to write a similar product. This file mayonly be used in accordance with a license and should not be re-distributed in any way. We appreciate your understanding and fairness.----------------------------------------------------------------------File        : GUI_OnKey.cPurpose     : Implementation of GUI_StoreKeyMsg---------------------------END-OF-HEADER------------------------------*/#include "GUI_Protected.H"static int _Key;static int _KeyMsgCnt;static struct {  int Key;  int PressedCnt;} _KeyMsg;/***********************************************************************       Public code************************************************************************//*********************************************************************                  GUI_GetKey*/int GUI_GetKey(void) {  int r = _Key;  _Key = 0;  return r;}/*********************************************************************                  GUI_StoreKey*/void GUI_StoreKey(int Key) {  if (!_Key)    _Key = Key;}/*********************************************************************                  GUI_ClearKeyBuffer*/void GUI_ClearKeyBuffer(void) {  while (GUI_GetKey());}/***********************************************************************     GUI_StoreKeyMsg*/void GUI_StoreKeyMsg(int Key, int PressedCnt) {  #if GUI_WINSUPPORT    /* If 0, WM will not generate any code */  _KeyMsg.Key = Key;  _KeyMsg.PressedCnt = PressedCnt;  _KeyMsgCnt = 1;  #else    GUI_USE_PARA(PressedCnt);    GUI_StoreKey(Key);  #endif}/***********************************************************************     GUI_PollKeyMsg*/#if GUI_WINSUPPORT    /* If 0, WM will not generate any code */int GUI_PollKeyMsg(void) {  int r = 0;  if (_KeyMsgCnt) {    int Key;    Key = _KeyMsg.Key;    if (WM_OnKey(Key, _KeyMsg.PressedCnt) == 0) {      if (_KeyMsg.PressedCnt == 1) {        GUI_StoreKey(Key);      }    }    _KeyMsgCnt--;    r = 1;              /* We have done something */  }  return r;}#endif/***********************************************************************     GUI_SendKeyMsg** Purpose:*   Send the key to a window using the window manager (if available).*   If no window is ready to take the input, we call the store routine*   and wait for somebody to poll the buffer.*/void GUI_SendKeyMsg(int Key, int PressedCnt) {  #if GUI_WINSUPPORT    /* If 0, WM will not generate any code */  if (!WM_OnKey(Key, PressedCnt)) {    GUI_StoreKeyMsg(Key, PressedCnt);  }  #else  GUI_StoreKeyMsg(Key, PressedCnt);  #endif}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -