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

📄 rip.c

📁 手机8032的完整代码。吐血推荐。小做改动就可以生产。
💻 C
📖 第 1 页 / 共 5 页
字号:
    WB_RIP_MENU, BMP_RIP_DOWN);

    _bRipEntry = ENTRY_TRACK8;
    vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
              RIP_LINE3_STARTY + 7 * 35 + 5, RIP_LINE3_STARTY + 7 * 35 + 35);
    vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_BG_HILI_COL);
    vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
  }
  else
  {
    if( MAX_TRACK_NUM >  _bNewRipTracknum + 5)
    {
      vOsdPasteBmpXY(RIP_ENTRY_RIGHT_X + 75, RIP_ENTRY_RIGHT_Y + 7 * 35 + 5, WB_RIP_MENU, BMP_RIP_DOWN);
    }
  }
}


void vClearErrorMsg(void)large
{
  BYTE bpStr_trknum[3] = {2, ' ', '0'};
  BYTE bpTimeStr[6] = {5, '0', '0', ':', '0', '0'};
  WORD  wtmptime = 0;

  bpStr_trknum[1] = _bpRipTrkNum[0] / 10 ? _bpRipTrkNum[0] / 10 + '0':' ';
  bpStr_trknum[2] = _bpRipTrkNum[0] % 10 + '0';
  _bRippingTimer = 0;

  if(stct_rip.bRipState == RIP_OPTIONS_STATE)
  {
    vSetRipXY(RIP_LINE1_STARTX + 4, RIP_CENTER_X - 2,
              RIP_LINE5_STARTY + 2, RIP_LINE6_STARTY - 2);
    vRectangle(WB_RIP_MENU, 0, RIP_COL_BLUE, 1, RIP_MENU_COL_BG);
    vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_SELECTED,
            RIP_LINE1_STARTX + 15, RIP_LINE5_STARTY + 10,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TRACK2,
            RIP_LINE1_STARTX + 117, RIP_LINE5_STARTY + 10,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_CENTER_X - 61, RIP_LINE5_STARTY + 10,
                  WB_RIP_MENU, bpStr_trknum);

    vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_SELECTED,
            RIP_LINE1_STARTX + 15, RIP_LINE5_STARTY + 42,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TIME,
            RIP_LINE1_STARTX + 117, RIP_LINE5_STARTY + 42,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    bHiByte(wtmptime) = wGetSelectedTotalSec() / 60;
    bLoByte(wtmptime) = wGetSelectedTotalSec() % 60;
    bpTimeStr[1] = bHiByte(wtmptime)  / 10 ? bHiByte(wtmptime)  / 10 + '0':'0';
    bpTimeStr[2] = bHiByte(wtmptime) % 10 ? bHiByte(wtmptime) % 10 + '0':'0';
    bpTimeStr[4] = bLoByte(wtmptime)  / 10 ? bLoByte(wtmptime)  / 10 + '0':'0';
    bpTimeStr[5] = bLoByte(wtmptime) % 10 ? bLoByte(wtmptime) % 10 + '0':'0';
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_CENTER_X - 75, RIP_LINE5_STARTY + 42,
                  WB_RIP_MENU, bpTimeStr);
  }
}


void vDrawTurnPage(BYTE bTrackNum)large
{
  BYTE j = 0, i = 1;
  BYTE bptmp[7];
  BYTE bpStr[8];
  BYTE bpTimeStr[6] = {5, '0', '0', ':', '0', '0'};
  WORD wTime = 0;

  vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
            RIP_ENTRY_RIGHT_Y, RIP_LINE6_STARTY - 4);
  vRectangle(WB_RIP_MENU, 0, RIP_COL_BLUE, 1, RIP_MENU_COL_BG);
  while(i < 100)
  {
    if(fgReadSelectedTrackFlag(i++) == TRUE)
    {
      j++;
      if(j > bTrackNum&& j < bTrackNum + 8 && j <= _bpRipTrkNum[0])
      {
        bptmp[j - bTrackNum - 1] = i - 1;
      }
      else
      {
        if(j == bTrackNum + 7)
          break;
      }
    }
  }
  bpStr[0] = 7;
  bpStr[1] = 't';
  bpStr[2] = 'r';
  bpStr[3] = 'a';
  bpStr[4] = 'c';
  bpStr[5] = 'k';
  for(i = 0; (i < 7) && ( i < (_bpRipTrkNum[0] - bTrackNum)); i++)
  {
    bpStr[6] = (bptmp[i] / 10) ? bptmp[i] / 10 + '0' : '0';
    bpStr[7] = bptmp[i] % 10 + '0';
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_ENTRY_RIGHT_X - 10, RIP_ENTRY_RIGHT_Y + i * 35,
                  WB_RIP_MENU, bpStr);
    wTime = wGetTrackTime(bptmp[i]);
    bpTimeStr[1] = bHiByte(wTime) / 10 ? bHiByte(wTime) / 10 + '0':'0';
    bpTimeStr[2] = bHiByte(wTime) % 10 + '0';
    bpTimeStr[4] = bLoByte(wTime) / 10 ? bLoByte(wTime) / 10 + '0':'0';
    bpTimeStr[5] = bLoByte(wTime) % 10 + '0';
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_ENTRY_RIGHT_X + 110, RIP_ENTRY_RIGHT_Y + i * 35,
                  WB_RIP_MENU, bpTimeStr);
  }

  if( _bpRipTrkNum[0] >  bTrackNum + 7)
  {
    vOsdPasteBmpXY(RIP_ENTRY_RIGHT_X + 75, RIP_ENTRY_RIGHT_Y + 7 * 35 + 5, WB_RIP_MENU, BMP_RIP_DOWN);
  }
  vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
            RIP_ENTRY_RIGHT_Y, RIP_ENTRY_RIGHT_Y + 30);
  vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_LIST_HILI_COL);
  vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);
}


void vDrawRipFinish(void)large
{
  BYTE bpStr_trknum[6] = {5, '0', '1', '/', '0', '0'};
  BYTE i = 1, j = 0;

  stct_rip.bRipState = RIP_RIP_START_STATE;
  _bHasRipNum++;
  if(_bHasRipNum == _bpRipTrkNum[0])
  {
    vShowRipPage();
  }
  else
  {
    if((_bHasRipNum != 0)&&((_bHasRipNum)%7 == 0))
    {
      vDrawTurnPage(_bHasRipNum);
    }
    else
    {
      bpStr_trknum[0] = 5;
      bpStr_trknum[1] = 'd';
      bpStr_trknum[2] = 'o';
      bpStr_trknum[3] = 'n';
      bpStr_trknum[4] = 'e';
      bpStr_trknum[5] = ' ';

      vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
                RIP_ENTRY_RIGHT_Y + ((_bHasRipNum - 1)%7) * 35,
                RIP_ENTRY_RIGHT_Y + ((_bHasRipNum - 1)%7) * 35 + 30);
      vChgColRep(WB_RIP_MENU, RIP_LIST_HILI_COL, RIP_MENU_COL_BG);
      vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_BLACK);

      vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
      vOsdShowStrXY(RIP_ENTRY_RIGHT_X + 110, RIP_ENTRY_RIGHT_Y + ((_bHasRipNum - 1)%7) * 35,
                    WB_RIP_MENU, bpStr_trknum);
    }
    bpStr_trknum[0] = 5;
    bpStr_trknum[1] = ' ';
    bpStr_trknum[2] = ' ';
    bpStr_trknum[3] = '0';
    bpStr_trknum[4] = '%';
    bpStr_trknum[5] = ' ';
    vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
              RIP_ENTRY_RIGHT_Y + (_bHasRipNum%7) * 35,
              RIP_ENTRY_RIGHT_Y + (_bHasRipNum%7) * 35 + 30);
    vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_LIST_HILI_COL);
    vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);

    vSetRipXY(RIP_3D4_X + 2, RIP_MENU_ENDX - 6,
              RIP_ENTRY_RIGHT_Y + (_bHasRipNum%7) * 35,
              RIP_ENTRY_RIGHT_Y + (_bHasRipNum%7) * 35 + 30);
    vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_LIST_HILI_COL);

    vSetMsgCol4(WB_RIP_MENU, RIP_LIST_HILI_COL, RIP_LIST_HILI_COL, RIP_LIST_HILI_COL, RIP_COL_BLUE);
    vOsdShowStrXY(RIP_ENTRY_RIGHT_X + 110, RIP_ENTRY_RIGHT_Y + (_bHasRipNum%7) * 35,
                  WB_RIP_MENU, bpStr_trknum);

    vSetRipXY(RIP_LINE1_STARTX + 4, RIP_CENTER_X - 2,
              RIP_LINE5_STARTY + 2, RIP_LINE6_NEW_STARTY - 2);
    vRectangle(WB_RIP_MENU, 0, RIP_COL_BLUE, 1, RIP_MENU_COL_BG);
    vShowMsg(WB_RIP_MENU, OSD_MSG_NOW_RIPPING,
            RIP_LINE1_STARTX + 50, RIP_LINE5_STARTY + 4,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TRACK2,
            RIP_LINE1_STARTX + 50, RIP_LINE5_STARTY + 42,
            RIP_MENU_COL_BG, RIP_COL_BLACK);
    bpStr_trknum[0] = 5;
    bpStr_trknum[1] = (_bHasRipNum + 1) / 10 ? (_bHasRipNum + 1) / 10 + '0':'0';
    bpStr_trknum[2] = (_bHasRipNum + 1) % 10 + '0';
    bpStr_trknum[3] = '/';
    bpStr_trknum[4] = _bpRipTrkNum[0] / 10 ? _bpRipTrkNum[0] / 10 + '0':'0';
    bpStr_trknum[5] = _bpRipTrkNum[0] % 10 + '0';
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_LINE1_STARTX + 180, RIP_LINE5_STARTY + 42,
                  WB_RIP_MENU, bpStr_trknum);
    while(i < 100)
    {

      if(fgReadSelectedTrackFlag(i)!= 0)
      {
        j++;
        if(j == (_bHasRipNum + 1))
          break;
      }
      i++;
    }
    // clear the track progress
    vSetRipXY(RIP_ENTRY_LEFT_X + 2, RIP_ENTRY_LEFT_X + 224,
              RIP_LINE3_STARTY + 42, RIP_LINE3_STARTY + 62);
    vChgColRep(WB_RIP_MENU, RIP_COL_BLUE, RIP_COL_AMETHYST);

    // kilocmd start rip
    vSendUopCmd(UOP_DIGITAL_BTN, i, stct_rip.fgHighSpeed, TRUE); //TRUE
  }
}


void vShowRipError(void)large
{
  if(stct_rip.bRipError != NO_ERROR)
  {
    vSetRipXY(RIP_LINE1_STARTX + 4, RIP_CENTER_X - 2,
              RIP_LINE5_STARTY + 2, RIP_LINE6_STARTY - 2);
    vRectangle(WB_RIP_MENU, 0, RIP_COL_BLUE, 1, RIP_MENU_COL_BG);

    if(stct_rip.bRipError == DEVICE_ERROR)
    {
      vShowMsg(WB_RIP_MENU, OSD_MSG_USB_DEVICE_ERROR1,
              RIP_LINE1_STARTX + 35, RIP_LINE5_STARTY + 25,
              RIP_MENU_COL_BG, RIP_COL_BLACK);
    }
    else if(stct_rip.bRipError == DISC_ERROR)
    {
      vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_DISC_ERROR,
              RIP_LINE1_STARTX + 45, RIP_LINE5_STARTY + 25,
              RIP_MENU_COL_BG, RIP_COL_BLACK);
    }
    else if(stct_rip.bRipError == DEVICE_FULL)
    {
      vShowMsg(WB_RIP_MENU, OSD_MSG_USB_DEVICE_FULL,
              RIP_LINE1_STARTX + 45, RIP_LINE5_STARTY + 25,
              RIP_MENU_COL_BG, RIP_COL_BLACK);
    }
  }
  if(stct_rip.bRipState == RIP_OPTIONS_STATE)
  {
    _bRippingTimer = 1;
  }
  else
  {
    _bRippingTimer = 0;
  }
}


void vDrawRipping(void)large
{
  BYTE i, j, bpStr[8], bpStr_trknum[6] = {5, '0', '1', '/', '0', '0'};
  BYTE bpTimeStr[7] = {5, '0', '0', ':', '0', '0', ' '};
  WORD wtmptime;

  j = 1;
  //show the bg col
  vSetRipXY(RIP_LINE1_STARTX + 1, RIP_MENU_WIDTH - 4,
            RIP_LINE1_STARTY + 1, RIP_MENU_HEIGHT - 4);
  vRectangle(WB_RIP_MENU, 2, RIP_COL_BLACK, 1, RIP_COL_LIGHT2_BLUE);

  // draw lin2
  vSetRipXY(RIP_LINE1_STARTX + 2, RIP_MENU_ENDX - 3,
            RIP_LINE2_STARTY, RIP_LINE2_STARTY);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 2);

  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TITLE,
          RIP_CENTER_LINE_STARTX - 50, RIP_LINE1_STARTY + 4,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  // draw lin3
  vSetRipXY(RIP_LINE1_STARTX + 2, RIP_MENU_ENDX - 3,
            RIP_LINE3_STARTY, RIP_LINE3_STARTY);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 2);

  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_RIPPING,
          RIP_1D4_X - 60, RIP_LINE2_STARTY + 2,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_SELECTED,
          RIP_CENTER_X + 60, RIP_LINE2_STARTY + 2,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TRACK2,
          RIP_CENTER_X + 170, RIP_LINE2_STARTY + 2,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  // draw lin4
  vSetRipXY(RIP_LINE1_STARTX + 2, RIP_CENTER_LINE_STARTX,
            RIP_LINE4_STARTY, RIP_LINE4_STARTY);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 2);

  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_SUMMARY,
          RIP_1D4_X - 50, RIP_LINE4_STARTY + 2,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  // draw lin5
  vSetRipXY(RIP_LINE1_STARTX + 2, RIP_CENTER_LINE_STARTX,
            RIP_LINE5_STARTY, RIP_LINE5_STARTY);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 2);


  vShowMsg(WB_RIP_MENU, OSD_MSG_NOW_RIPPING,
          RIP_LINE1_STARTX + 50, RIP_LINE5_STARTY + 4,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TRACK2,
          RIP_LINE1_STARTX + 50, RIP_LINE5_STARTY + 42,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  bpStr_trknum[4] = _bpRipTrkNum[0] / 10 ? _bpRipTrkNum[0] / 10 + '0' : '0';
  bpStr_trknum[5] = _bpRipTrkNum[0] % 10 + '0';
  vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
  vOsdShowStrXY(RIP_LINE1_STARTX + 180, RIP_LINE5_STARTY + 42,
                WB_RIP_MENU, bpStr_trknum);
  vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
  // draw lin6
  vSetRipXY(RIP_LINE1_STARTX, RIP_MENU_ENDX - 3,
            RIP_LINE6_NEW_STARTY, RIP_LINE6_NEW_STARTY);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 2);

  // draw center line
  vSetRipXY(RIP_CENTER_LINE_STARTX, RIP_CENTER_LINE_STARTX,
            RIP_CENTER_LINE_STARTY, RIP_MENU_ENDY - 4);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 1);

  /*vSetRipXY(RIP_3D4_X - 16, RIP_3D4_X - 16,
            RIP_LINE6_STARTY, RIP_MENU_ENDY - 4);
  vOsdShowLine(WB_RIP_MENU, RIP_COL_BLACK, 1);*/

  bpStr[0] = 7;
  bpStr[1] = 't';
  bpStr[2] = 'r';
  bpStr[3] = 'a';
  bpStr[4] = 'c';
  bpStr[5] = 'k';
  for(i = 0; (i < 7) && (i < _bpRipTrkNum[0]); i++)
  {
    while(fgReadSelectedTrackFlag(j++) == 0){;}
    bpStr[6] = ((j - 1) / 10) ? (j - 1) / 10 + '0' : '0';
    bpStr[7] = (j - 1) % 10 + '0';
    wtmptime = wGetTrackTime(j - 1);
    bpTimeStr[1] = bHiByte(wtmptime)  / 10 ? bHiByte(wtmptime)  / 10 + '0':'0';
    bpTimeStr[2] = bHiByte(wtmptime) % 10 ? bHiByte(wtmptime) % 10 + '0':'0';
    bpTimeStr[4] = bLoByte(wtmptime)  / 10 ? bLoByte(wtmptime)  / 10 + '0':'0';
    bpTimeStr[5] = bLoByte(wtmptime) % 10 ? bLoByte(wtmptime) % 10 + '0':'0';
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_ENTRY_RIGHT_X - 10, RIP_ENTRY_RIGHT_Y + i * 35,
                  WB_RIP_MENU, bpStr);
    vSetMsgCol4(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_MENU_COL_BG, RIP_COL_BLACK);
    vOsdShowStrXY(RIP_ENTRY_RIGHT_X + 110, RIP_ENTRY_RIGHT_Y + i * 35,
                  WB_RIP_MENU, bpTimeStr);
  }
  bpTimeStr[0] = 5;
  bpTimeStr[1] = ' ';
  bpTimeStr[2] = '0';
  bpTimeStr[3] = '%';
  bpTimeStr[4] = ' ';
  bpTimeStr[5] = ' ';
  vSetRipXY(RIP_CENTER_X + 2, RIP_MENU_ENDX - 6,
            RIP_ENTRY_RIGHT_Y, RIP_ENTRY_RIGHT_Y + 30);
  vChgColRep(WB_RIP_MENU, RIP_MENU_COL_BG, RIP_LIST_HILI_COL);
  vChgColRep(WB_RIP_MENU, RIP_COL_BLACK, RIP_COL_BLUE);

  vSetMsgCol4(WB_RIP_MENU, RIP_LIST_HILI_COL, RIP_LIST_HILI_COL, RIP_LIST_HILI_COL, RIP_COL_BLUE);
  vOsdShowStrXY(RIP_ENTRY_RIGHT_X + 110, RIP_ENTRY_RIGHT_Y,
                WB_RIP_MENU, bpTimeStr);

  if( _bpRipTrkNum[0] > 7)
  {
    vOsdPasteBmpXY(RIP_ENTRY_RIGHT_X + 75, RIP_ENTRY_RIGHT_Y + 7 * 35 + 5, WB_RIP_MENU, BMP_RIP_DOWN);
  }

  vSetRipXY(RIP_LINE1_STARTX + 1, RIP_MENU_WIDTH - 4,
            RIP_LINE6_NEW_STARTY + 2, RIP_MENU_HEIGHT - 4);
  vRectangle(WB_RIP_MENU, 0, RIP_COL_BLACK, 1, 0);

  ////////////////////progress//////////////////////////////////
  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_TRACK2,
          RIP_LINE1_STARTX + 15, RIP_LINE3_STARTY + 10,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  vShowMsg(WB_RIP_MENU, OSD_MSG_RIP_PROGRESS,
          RIP_LINE1_STARTX + 70, RIP_LINE3_STARTY + 10,
          RIP_MENU_COL_BG, RIP_COL_BLACK);
  vSetRipXY(RIP_ENTRY_LEFT_X, RIP_CENTER_X - 20,
            RIP_LINE3_STARTY + 40, RIP_LINE3_STARTY + 64);
  vRectangle(WB_RIP_MENU, 2, RIP_COL_BLUE, 1, RIP_COL_AMETHYST);

⌨️ 快捷键说明

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