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

📄 menu_121.c

📁 ct952 source code use for Digital Frame Photo
💻 C
📖 第 1 页 / 共 5 页
字号:
    {        _MENU_GetSubMenuDisplayRect(hMenu, &MENURect);    }      MENURect.bColor = _bMENUBackgroundColor[hMenu];    MENURect.rect.wTop -= MENU_FRAME_THICKNESS;    MENURect.rect.wBottom += MENU_FRAME_THICKNESS;    MENURect.rect.wLeft -= MENU_FRAME_THICKNESS;    MENURect.rect.wRight += MENU_FRAME_THICKNESS;         GDI_FillRect(0, &MENURect);    }BYTE _MENU_CheckIfAnyItemHasSubMenu(MENU *pMenu){    BYTE bMenuItemIndex;    BYTE bSubMenuSymbol = FALSE;    for (bMenuItemIndex = 0; bMenuItemIndex < pMenu->bTotalItem; bMenuItemIndex++)    {        if (pMenu->pMenuItem[bMenuItemIndex].pSubMenu != NULL)        {            bSubMenuSymbol = TRUE;        }    }        return bSubMenuSymbol;}void _MENU_CopyString(void){    BYTE i;    for (i = 0; i < __pOSDUTLOutputString[0]+1; i++)    {            __wMENUStringBuf[i] = __pOSDUTLOutputString[i];    }}void MENU_ResetToDefaultState(HMENU hMenu){    _pMENUSubMenu[hMenu] = (PMENU)(_pMENUCurrentMenu[hMenu]->pMenuItem[_pMENUCurrentMenu[hMenu]->bDefaultCursorPos].pSubMenu);        //Set the cursor's position    _Cursor[hMenu].bMainMenuIndex = _pMENUCurrentMenu[hMenu]->bDefaultCursorPos;    _Cursor[hMenu].bPos = MENU_MAIN_MENU;        if (_pMENUSubMenu[hMenu] == NULL)    {        _Cursor[hMenu].bSubMenuIndex = CURSOR_POS_INVALID;    }    else    {        _Cursor[hMenu].bSubMenuIndex = _pMENUSubMenu[hMenu]->bDefaultCursorPos;    }            //Main menu has "Up" mark?    _MENU_SetMainMenuInitialDisplay(hMenu);    if (_pMENUSubMenu[hMenu] != NULL)    {        //Sub-menu has "Up" mark?        _MENU_SetSubMenuInitialDisplay(hMenu);    }}
BYTE MENU_GetCurrentItemID(HMENU hMenu)
{
    if (_Cursor[hMenu].bPos == MENU_MAIN_MENU)
    {
        return (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bID);
    }
    else
    {
        if (_pMENUSubMenu[hMenu]->bMenuType == MENU_TYPE_NUM)
        {
            return _Cursor[hMenu].bSubMenuIndex;
        }
        else
        {
            return (_pMENUSubMenu[hMenu]->pMenuItem[(_Cursor[hMenu].bSubMenuIndex)].bID);                
        }
    }
}

BYTE MENU_AllDisableItems(HMENU hMenu)
{
    BYTE bMenuIndex;

    for (bMenuIndex = 0; bMenuIndex < _pMENUCurrentMenu[hMenu]->bTotalItem; bMenuIndex++)
    {    
        if (_pMENUCurrentMenu[hMenu]->pMenuItem[bMenuIndex].bAttribute == MENU_ITEM_STATE_ENABLE)
            return FALSE;
    }

    return TRUE;
}

BYTE _MENU_AllDisableSubItems(HMENU hMenu)
{
    BYTE bMenuIndex;

    for (bMenuIndex = 0; bMenuIndex < _pMENUSubMenu[hMenu]->bTotalItem; bMenuIndex++)
    {    
        if (_pMENUSubMenu[hMenu]->pMenuItem[bMenuIndex].bAttribute == MENU_ITEM_STATE_ENABLE)
            return FALSE;
    }

    return TRUE;
}

BYTE _MENU_CheckMainMenuCursorState(HMENU hMenu)
{
    //Set the cursor's position
    if (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bAttribute == MENU_ITEM_STATE_ENABLE)
    {
        if ((PMENU)(_pMENUCurrentMenu[hMenu]->pMenuItem[(_Cursor[hMenu].bMainMenuIndex)].pSubMenu) == NULL)
        {
            return FALSE;
        }
        else
        {
            return TRUE;
        }
    }

    while (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bAttribute == MENU_ITEM_STATE_DISABLE)
    {
        if ((_Cursor[hMenu].bMainMenuIndex+1) < (_MainMenuDisplay[hMenu].bStartDrawItem+_MainMenuDisplay[hMenu].bMaxVisibleItem))
        {
            _Cursor[hMenu].bMainMenuIndex++;
        }
        else
        {
            break;
        }

        if (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bAttribute == MENU_ITEM_STATE_ENABLE)
        {
            _pMENUSubMenu[hMenu] = (PMENU)(_pMENUCurrentMenu[hMenu]->pMenuItem[(_Cursor[hMenu].bMainMenuIndex)].pSubMenu);
            
            if (_pMENUSubMenu[hMenu] == NULL)
            {
                _Cursor[hMenu].bSubMenuIndex = CURSOR_POS_INVALID;
            }
            else
            {
                _Cursor[hMenu].bSubMenuIndex = _pMENUSubMenu[hMenu]->bDefaultCursorPos;
                _MENU_SetSubMenuInitialDisplay(hMenu);
            }

            return TRUE;
        }
    }
    
    _pMENUSubMenu[hMenu] = NULL;
    _Cursor[hMenu].bSubMenuIndex = CURSOR_POS_INVALID;
    
    return FALSE;
}

#ifdef SETUP_KEY_UP_DOWN_TOGGLE_OPTIONS

void _MENU_GoToMainMenuItem(HMENU hMenu, BYTE bItem)
{
    BYTE bCount;

    //Clear current sub-menu.
    MENU_ClearMenuBackground(MENU_MAIN_MENU, hMenu);
    _MENU_ClearUpDownArrowBackground(MENU_MAIN_MENU, hMenu, MENU_ARROW_TYPE_UP);
    _MENU_ClearUpDownArrowBackground(MENU_MAIN_MENU, hMenu, MENU_ARROW_TYPE_DOWN);
    MENU_ClearMenuBackground(MENU_SUB_MENU, hMenu);

    if (bItem == MENU_FIRST_ITEM)
    {
        _Cursor[hMenu].bMainMenuIndex = 0;                                
        if (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bAttribute == MENU_ITEM_STATE_DISABLE)
        {
            bCount = _MENU_GetCountForDownItem(_pMENUCurrentMenu[hMenu], _Cursor[hMenu].bMainMenuIndex);
            _Cursor[hMenu].bMainMenuIndex += bCount;
        }
        
        if (_pMENUCurrentMenu[hMenu]->bTotalItem <= _MainMenuDisplay[hMenu].bMaxVisibleItem)
        {
            _MainMenuDisplay[hMenu].bStartDrawItem = 0;
            _MainMenuDisplay[hMenu].bUpMark = FALSE;
        }
        else
        {
            if (_Cursor[hMenu].bMainMenuIndex >= _MainMenuDisplay[hMenu].bMaxVisibleItem)
            {
                _MainMenuDisplay[hMenu].bStartDrawItem = _Cursor[hMenu].bMainMenuIndex;
            }
            else
            {
                _MainMenuDisplay[hMenu].bStartDrawItem = 0;
            }
        }
    }
    else if (bItem == MENU_LAST_ITEM)
    {
        _Cursor[hMenu].bMainMenuIndex = _pMENUCurrentMenu[hMenu]->bTotalItem-1;                
        if (_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].bAttribute == MENU_ITEM_STATE_DISABLE)
        {
            bCount = _MENU_GetCountForUpItem(_pMENUCurrentMenu[hMenu], _Cursor[hMenu].bMainMenuIndex);
            _Cursor[hMenu].bMainMenuIndex -= bCount;
        }
        
        if (_pMENUCurrentMenu[hMenu]->bTotalItem <= _MainMenuDisplay[hMenu].bMaxVisibleItem)
        {
            _MainMenuDisplay[hMenu].bStartDrawItem = 0;
            _MainMenuDisplay[hMenu].bUpMark = FALSE;
        }
        else
        {
            if (_Cursor[hMenu].bMainMenuIndex >= _MainMenuDisplay[hMenu].bMaxVisibleItem)
            {
                _MainMenuDisplay[hMenu].bStartDrawItem = _Cursor[hMenu].bMainMenuIndex - _MainMenuDisplay[hMenu].bMaxVisibleItem + 1;
            }
            else
            {
                _MainMenuDisplay[hMenu].bStartDrawItem = 0;
            }
        }
    }

    if (_MainMenuDisplay[hMenu].bStartDrawItem == 0)
    {
        //Clear "Up" mark
        _MainMenuDisplay[hMenu].bUpMark = FALSE;
    }
    else
    {
        _MainMenuDisplay[hMenu].bUpMark = TRUE;
    }
    
    if ((_MainMenuDisplay[hMenu].bStartDrawItem+_MainMenuDisplay[hMenu].bMaxVisibleItem) < _pMENUCurrentMenu[hMenu]->bTotalItem)
    {
        _MainMenuDisplay[hMenu].bDownMark = TRUE;
    }
    else
    {
        _MainMenuDisplay[hMenu].bDownMark = FALSE;
    }
    
    _MENU_ShowMainMenu(hMenu);
    
    MENU_UpdateCursor(hMenu, CURSOR_STYLE_NORMAL);
    
    _pMENUSubMenu[hMenu] = _pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].pSubMenu;                
    //Show sub-menu
    if ((_pMENUSubMenu[hMenu] != NULL) && (_pMENUSubMenu[hMenu]->bTotalItem != 0))
    {
        _pMENUSubMenu[hMenu] = (PMENU)(_pMENUCurrentMenu[hMenu]->pMenuItem[_Cursor[hMenu].bMainMenuIndex].pSubMenu);
        _MENU_SetSubMenuInitialDisplay(hMenu);
        _Cursor[hMenu].bSubMenuIndex = _pMENUSubMenu[hMenu]->bDefaultCursorPos;
        _MENU_ShowSubMenu(hMenu);
    }
}

void _MENU_GoToSubMenuItem(HMENU hMenu, BYTE bItem)
{
    BYTE bCount;

    //Clear current sub-menu.
    MENU_ClearMenuBackground(MENU_SUB_MENU, hMenu);
    _MENU_ClearUpDownArrowBackground(MENU_SUB_MENU, hMenu, MENU_ARROW_TYPE_UP);
    _MENU_ClearUpDownArrowBackground(MENU_SUB_MENU, hMenu, MENU_ARROW_TYPE_DOWN);

    if (bItem == MENU_FIRST_ITEM)
    {
        _Cursor[hMenu].bSubMenuIndex = 0;                                
        if (_pMENUSubMenu[hMenu]->pMenuItem[_Cursor[hMenu].bSubMenuIndex].bAttribute == MENU_ITEM_STATE_DISABLE)
        {
            bCount = _MENU_GetCountForDownItem(_pMENUSubMenu[hMenu], _Cursor[hMenu].bSubMenuIndex);
            _Cursor[hMenu].bMainMenuIndex += bCount;
        }
        
        if (_pMENUSubMenu[hMenu]->bTotalItem <= _SubMenuDisplay[hMenu].bMaxVisibleItem)
        {
            _SubMenuDisplay[hMenu].bStartDrawItem = 0;
            _SubMenuDisplay[hMenu].bUpMark = FALSE;
        }
        else
        {
            if (_Cursor[hMenu].bSubMenuIndex >= _SubMenuDisplay[hMenu].bMaxVisibleItem)
            {
                _SubMenuDisplay[hMenu].bStartDrawItem = _Cursor[hMenu].bSubMenuIndex;
            }
            else
            {
                _SubMenuDisplay[hMenu].bStartDrawItem = 0;
            }
        }

    }
    else if (bItem == MENU_LAST_ITEM)
    {
        _Cursor[hMenu].bSubMenuIndex = _pMENUSubMenu[hMenu]->bTotalItem-1;                
        if (_pMENUSubMenu[hMenu]->pMenuItem[_Cursor[hMenu].bSubMenuIndex].bAttribute == MENU_ITEM_STATE_DISABLE)
        {
            bCount = _MENU_GetCountForUpItem(_pMENUSubMenu[hMenu], _Cursor[hMenu].bSubMenuIndex);
            _Cursor[hMenu].bSubMenuIndex -= bCount;
        }
        
        if (_pMENUSubMenu[hMenu]->bTotalItem <= _SubMenuDisplay[hMenu].bMaxVisibleItem)
        {
            _SubMenuDisplay[hMenu].bStartDrawItem = 0;
            _SubMenuDisplay[hMenu].bUpMark = FALSE;
        }
        else
        {
            if (_Cursor[hMenu].bSubMenuIndex >= _SubMenuDisplay[hMenu].bMaxVisibleItem)
            {
                _SubMenuDisplay[hMenu].bStartDrawItem = _Cursor[hMenu].bSubMenuIndex - _SubMenuDisplay[hMenu].bMaxVisibleItem + 1;
            }
            else
            {
                _SubMenuDisplay[hMenu].bStartDrawItem = 0;
            }
        }
    }

    if (_SubMenuDisplay[hMenu].bStartDrawItem == 0)
    {
        //Clear "Up" mark
        _SubMenuDisplay[hMenu].bUpMark = FALSE;
    }
    else
    {
        _SubMenuDisplay[hMenu].bUpMark = TRUE;
    }
    
    if ((_SubMenuDisplay[hMenu].bStartDrawItem+_SubMenuDisplay[hMenu].bMaxVisibleItem) < _pMENUSubMenu[hMenu]->bTotalItem)
    {
        _SubMenuDisplay[hMenu].bDownMark = TRUE;
    }
    else
    {
        _SubMenuDisplay[hMenu].bDownMark = FALSE;
    }

    _MENU_ShowSubMenu(hMenu);
    MENU_UpdateCursor(hMenu, CURSOR_STYLE_NORMAL);
}

#endif //SETUP_KEY_UP_DOWN_TOGGLE_OPTIONS

⌨️ 快捷键说明

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