亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? newmenu.cpp

?? 該文件包含有C8051單片機中實現UART波特率自檢的功能
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
      DWORD MsgPos = ::GetMessagePos();
      if(MsgPos==CNewMenuHook::m_dwMsgPos)
      {
        bDrawSmalSelection = TRUE;
      }
      else
      {
        CNewMenuHook::m_dwMsgPos = MsgPos;
      }
    }
  }

  if(state & MF_SEPARATOR)
  {
    if(pMenuData->m_nTitleFlags&MFT_TITLE)
    {
      DrawTitle(lpDIS,bIsMenuBar);
    }
    else
    {
      rect = lpDIS->rcItem; 
      rect.left += 1;
      pDC->FillSolidRect(rect,ColorBack);
      pDC->DrawEdge(&rect,EDGE_ETCHED,BF_TOP);
    }
  }
  else
  {
    CRect rect2;
    BOOL standardflag=FALSE,selectedflag=FALSE,disableflag=FALSE;
    BOOL checkflag=FALSE;

    CBrush m_brSelect;
    int nIconNormal=-1,xoffset=-1;
    CImageList *bitmap=NULL;

    // set some colors and the font
    m_brSelect.CreateSolidBrush(GetSysColor(COLOR_HIGHLIGHT));

    // draw the colored rectangle portion
    rect.CopyRect(&lpDIS->rcItem);
    rect.OffsetRect (1,1);
    rect2=rect=RectSel;

    // draw the up/down/focused/disabled state

    UINT state = lpDIS->itemState;
    CString strText;

    nIconNormal = pMenuData->m_nMenuIconNormal;
    xoffset = pMenuData->m_nxOffset;
    bitmap = pMenuData->m_pBitmap;
    strText = pMenuData->GetString();

    if( (state&ODS_CHECKED) && nIconNormal<0)
    {
      if(state&ODS_SELECTED && m_selectcheck>0)
        checkflag=TRUE;
      else if(m_unselectcheck>0) 
        checkflag=TRUE;
    }
    else if(nIconNormal != -1)
    {
      standardflag=TRUE;
      if(state&ODS_SELECTED && !(state&ODS_GRAYED))
        selectedflag=TRUE;
      else if(state&ODS_GRAYED)
        disableflag=TRUE;
    }

    if(bIsMenuBar)
    {
      //rect.InflateRect (1,0,0,0);
      rect.OffsetRect(-1,1);
      rect2=rect;
      pDC->FillSolidRect (rect,ColorBack);
    }
    else
    {
      // Draw the background
      pDC->FillSolidRect (rect,ColorBack);
    }
    // Draw the selection
    if(state&ODS_SELECTED)
    {
      // You need only Text highlight and thats what you get
      if(!bIsMenuBar)
      {
        if(checkflag||standardflag||selectedflag||disableflag||state&ODS_CHECKED)
        {
          rect2.SetRect(rect.left+m_iconX+4+GAP,rect.top,rect.right,rect.bottom);
        }
        pDC->FillRect(rect2,&m_brSelect);
      }
      else
      {
        pDC->Draw3dRect(rect ,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DHILIGHT));
      }
    }
    else if(bIsMenuBar && (state&ODS_HOTLIGHT) && !(state&ODS_INACTIVE))
    {
      pDC->Draw3dRect(rect,GetSysColor(COLOR_3DHILIGHT),GetSysColor(COLOR_3DSHADOW));
    }
    else if (bDrawSmalSelection)
    {
      pDC->DrawFocusRect(rect);
    }

    // Draw the Bitmap or checkmarks
    if(!bIsMenuBar)
    {
      CRect IconRect(rect.TopLeft(),CSize(m_iconX,m_iconY));
      IconRect.OffsetRect(GAP+1,1+((rect.Height()-m_iconY)>>2));

      CPoint ptImage = IconRect.TopLeft();
      IconRect.InflateRect(2,2);
      if(checkflag||standardflag||selectedflag||disableflag)
      {
        if(checkflag && checkmaps)
        {
          if(state&ODS_SELECTED)
            checkmaps->Draw(pDC,1,ptImage,ILD_TRANSPARENT);
          else 
            checkmaps->Draw(pDC,0,ptImage,ILD_TRANSPARENT);
        }
        else
        {
          // Need to draw the checked state
          if (IsNewShell())
          {
            if(state&ODS_CHECKED)
            {
              pDC->Draw3dRect(IconRect,GetSysColor(COLOR_3DSHADOW),GetSysColor(COLOR_3DHILIGHT));
            }
            else if (selectedflag)
            {
              pDC->Draw3dRect(IconRect,GetSysColor(COLOR_3DHILIGHT),GetSysColor(COLOR_3DSHADOW));
            }
          }

          if(state & ODS_DISABLED)
          {
            HICON hDrawIcon = bitmap->ExtractIcon(0);
            int cx,cy;
            ::ImageList_GetIconSize(*bitmap, &cx, &cy);
            CSize size(cx,cy);
          
            pDC->DrawState(ptImage, size, hDrawIcon, DSS_DISABLED, (HBRUSH)NULL);
          }
          else
          {
            bitmap->Draw(pDC,0,ptImage,ILD_TRANSPARENT);
          }
        }
      }
      if(pMenuData->m_nMenuIconNormal<0 && state&ODS_CHECKED && !checkflag)
      {
        MENUITEMINFO info;
        ZeroMemory(&info, sizeof(info));

        info.cbSize = sizeof(info);
        info.fMask = MIIM_CHECKMARKS;

        ::GetMenuItemInfo(HWndToHmenu(lpDIS->hwndItem),lpDIS->itemID,MF_BYCOMMAND, &info);

        if(state&ODS_CHECKED || info.hbmpUnchecked) 
        {
          // Rectangle for checkmarks
          CRect rect = IconRect;
          if (state&ODS_CHECKED)
            Draw3DCheckmark(pDC, IconRect,info.hbmpChecked,state);
          else
            Draw3DCheckmark(pDC, IconRect,info.hbmpUnchecked,state);
        }
      }
      else if (lpDIS->itemID>=SC_SIZE && lpDIS->itemID<=SC_HOTKEY)
      {
        DrawSpecial_OldStyle(pDC,IconRect,lpDIS->itemID,state);
      } 
    }

    if(!strText.IsEmpty())
    {
      COLORREF crText = GetSysColor(COLOR_MENUTEXT);

      if(bIsMenuBar)
      {
        rect.left += 6;
        if(lpDIS->itemState&ODS_INACTIVE) 
          crText = GetSysColor(COLOR_GRAYTEXT);
      }
      else
      {
        if(lpDIS->itemState&ODS_SELECTED) 
          crText = GetSysColor(COLOR_HIGHLIGHTTEXT);

        rect.left += m_iconX + 12;
      }
      CRect rectt(rect.left,rect.top-1,rect.right,rect.bottom-1);
      
      // Find tabs
      CString leftStr,rightStr;
      leftStr.Empty();rightStr.Empty();

      int tablocr=strText.ReverseFind(_T('\t'));
      if(tablocr!=-1)
      {
        rightStr=strText.Mid(tablocr+1);
        leftStr=strText.Left(strText.Find(_T('\t')));
        rectt.right-=m_iconX;
      }
      else
        leftStr=strText;

      int iOldMode = pDC->SetBkMode( TRANSPARENT);
      // Draw the text in the correct colour:
      UINT nFormat  = DT_LEFT|DT_SINGLELINE|DT_VCENTER;
      UINT nFormatr = DT_RIGHT|DT_SINGLELINE|DT_VCENTER;

      if(bIsMenuBar)
      {
        rectt = RectSel;
        if(state & ODS_SELECTED)
        {
          rectt.OffsetRect(1,1);
        } 
        nFormat = DT_CENTER|DT_SINGLELINE|DT_VCENTER;
      }

      if(!(lpDIS->itemState & ODS_GRAYED))
      {
        pDC->SetTextColor(crText);
        pDC->DrawText (leftStr,rectt,nFormat);
        if(tablocr!=-1)
          pDC->DrawText (rightStr,rectt,nFormatr);
      }
      else
      {
        // Draw the disabled text
        if(!(state & ODS_SELECTED))
        {
          CRect offset = rectt;
          offset.OffsetRect (1,1);

          pDC->SetTextColor(GetSysColor(COLOR_BTNHILIGHT));
          pDC->DrawText(leftStr,&offset, nFormat);
          if(tablocr!=-1) 
            pDC->DrawText (rightStr,&offset,nFormatr);

          pDC->SetTextColor(GetSysColor(COLOR_GRAYTEXT));
          pDC->DrawText(leftStr,rectt, nFormat);
          if(tablocr!=-1)
            pDC->DrawText(rightStr,rectt,nFormatr);
        }
        else
        {
          // And the standard Grey text:
          pDC->SetTextColor(ColorBack);
          pDC->DrawText(leftStr,rectt, nFormat);
          if(tablocr!=-1) 
            pDC->DrawText (rightStr,rectt,nFormatr);
        }
      }
      pDC->SetBkMode( iOldMode );
    }
    m_brSelect.DeleteObject();
  }
  m_brBackground.DeleteObject();
}

BOOL CNewMenu::IsMenuBar(HMENU hMenu)
{
  BOOL bIsMenuBar = ::IsMenu(hMenu);
  if(bIsMenuBar)
  {
    CNewMenu* pMenu = DYNAMIC_DOWNCAST(CNewMenu,CMenu::FromHandlePermanent(m_hParentMenu));
    if (pMenu!=NULL && pMenu->m_hParentMenu!=NULL)
    {
      bIsMenuBar = FALSE;
    }
  }
  return bIsMenuBar;
}

/*
==========================================================================
void CNewMenu::MeasureItem(LPMEASUREITEMSTRUCT)
---------------------------------------------

  Called by the framework when it wants to know what the width and height
  of our item will be.  To accomplish this we provide the width of the
  icon plus the width of the menu text, and then the height of the icon.
  
==========================================================================
*/
void CNewMenu::MeasureItem_OldStyle( LPMEASUREITEMSTRUCT lpMIS, BOOL bIsMenuBar )
{
  ASSERT(lpMIS->itemData);
  CNewMenuItemData* pMenuData = (CNewMenuItemData*)(lpMIS->itemData);

  UINT state = pMenuData->m_nFlags;
  if(state & MF_SEPARATOR)
  {
    if(pMenuData->m_nTitleFlags&MFT_TITLE)
    {
      // DC of the desktop
      CClientDC myDC(NULL);          

      CFont font;
      font.CreatePointFont(160,_T("Arial"));
      CFont* pOldFont = myDC.SelectObject (&font);
      LPCTSTR lpstrText = pMenuData->GetString();
      SIZE size;
      VERIFY(::GetTextExtentPoint32(myDC.m_hDC,lpstrText,(int)_tcslen(lpstrText),&size));
      // Select old font in
      myDC.SelectObject(pOldFont);  

      if(pMenuData->m_nTitleFlags&MFT_SIDE_TITLE)
      {
        lpMIS->itemWidth = size.cy*3/4 -GetSystemMetrics(SM_CXMENUCHECK);
        // Don't make the menu higher than menuitems in it
        lpMIS->itemHeight = 0;
        if(pMenuData->m_nTitleFlags&MFT_LINE)
        {
          lpMIS->itemWidth += 6;
        }
       }
      else
      {
        lpMIS->itemWidth = size.cx*3/4;
        lpMIS->itemHeight = size.cy*3/4;
        if(pMenuData->m_nTitleFlags&MFT_LINE)
        {
          lpMIS->itemHeight += 6;
        }
      }
    }
    else
    {
      lpMIS->itemHeight = 3;
    }
  }
  else
  {
    CFont m_fontMenu;
    LOGFONT m_lf;
    ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));
    NONCLIENTMETRICS nm;
    nm.cbSize = sizeof (NONCLIENTMETRICS);
    VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, nm.cbSize,&nm,0)); 
    m_lf =  nm.lfMenuFont;
    // Default selection?
    if(state&ODS_DEFAULT)
    {
      // Make the font bold
      m_lf.lfWeight = FW_BOLD;
    }

    m_fontMenu.CreateFontIndirect (&m_lf);
    
    // DC of the desktop
    CClientDC myDC(NULL);
    
    // Select menu font in...    
    CFont* pOldFont = myDC.SelectObject (&m_fontMenu);
    //Get pointer to text SK
    const LPCTSTR lpstrText = pMenuData->GetString();
    SIZE size;
    VERIFY(::GetTextExtentPoint32(myDC.m_hDC,lpstrText,(int)_tcslen(lpstrText),&size));
    // Select old font in
    myDC.SelectObject(pOldFont);  
  
    // Set width and height:
    if(bIsMenuBar)
    {
      lpMIS->itemWidth = size.cx ;
    }
    else
    {
      lpMIS->itemWidth = m_iconX + size.cx + m_iconX + GAP;
    }

    // Check the Key-Shortcut
    if(_tcsstr(lpstrText, _T("\t")) != NULL)
      lpMIS->itemWidth += 15;

    int temp = GetSystemMetrics(SM_CYMENU);
    lpMIS->itemHeight = (temp>(m_iconY+4)) ? temp : (m_iconY+4);
    
    m_fontMenu.DeleteObject();

    // set status bar as appropriate
    UINT nItemID = (lpMIS->itemID & 0xFFF0);
    // Special case for system menu
    if (nItemID>=SC_SIZE && nItemID<=SC_HOTKEY) 
    {
      BOOL bGetNext = FALSE;
      // search the actual menu item
      for (int j=0;j<m_MenuList.GetUpperBound();++j)
      {
        CNewMenuItemData* pTemp = m_MenuList[j];
        if(pTemp==pMenuData || bGetNext==TRUE)
        {
          bGetNext = TRUE;
          pTemp = m_MenuList[j+1];
          if(pTemp->m_nID)
          {
            lpMIS->itemData = (ULONG_PTR)pTemp;
            lpMIS->itemID = pTemp->m_nID; 
            UINT nOrgWidth = lpMIS->itemWidth;
            MeasureItem_OldStyle(lpMIS,bIsMenuBar);
            // Restore old values
            lpMIS->itemData = (ULONG_PTR)pMenuData;
            lpMIS->itemID = pMenuData->m_nID;
            lpMIS->itemWidth = max(lpMIS->itemWidth,nOrgWidth);
            break;
          }
        }
      }
      lpMIS->itemHeight = temp;
    } 
  }
}
void CNewMenu::MeasureItem_WinXP( LPMEASUREITEMSTRUCT lpMIS, BOOL bIsMenuBar )
{
  ASSERT(lpMIS->itemData);
  CNewMenuItemData* pMenuData = (CNewMenuItemData*)(lpMIS->itemData);

  UINT state = pMenuData->m_nFlags;
  if(state & MF_SEPARATOR)
  {
    if(pMenuData->m_nTitleFlags&MFT_TITLE)
    {
      // DC of the desktop
      CClientDC myDC(NULL);

      CFont font;
      font.CreatePointFont(160,_T("Arial"));
      CFont* pOldFont = myDC.SelectObject (&font);
      LPCTSTR lpstrText = pMenuData->GetString();
      SIZE size;
      VERIFY(::GetTextExtentPoint32(myDC.m_hDC,lpstrText,(int)_tcslen(lpstrText),&size));
      // Select old font in
      myDC.SelectObject(pOldFont);  

      if(pMenuData->m_nTitleFlags&MFT_SIDE_TITLE)
      {
        lpMIS->itemWidth = size.cy*3/4 -GetSystemMetrics(SM_CXMENUCHECK);
        // Don't make the menu higher than menuitems in it
        lpMIS->itemHeight = 0;
        if(pMenuData->m_nTitleFlags&MFT_LINE)
        {
          lpMIS->itemWidth += 6;
        }
      }
      else
      {
        lpMIS->itemWidth = size.cx*3/4;
        lpMIS->itemHeight = size.cy*3/4;
        if(pMenuData->m_nTitleFlags&MFT_LINE)
        {
          lpMIS->itemHeight += 6;
        }
      }
    }
    else
    {
      lpMIS->itemHeight = 3;
    }
  }
  else
  {
    CFont m_fontMenu;
    LOGFONT m_lf;
    ZeroMemory ((PVOID) &m_lf,sizeof (LOGFONT));
    NONCLIENTMETRICS nm;
    nm.cbSize = sizeof (NONCLIENTMETRICS);
    VERIFY(SystemParametersInfo(SPI_GETNONCLIENTMETRICS, nm.cbSize,&nm,0)); 
    m_lf =  nm.lfMenuFont;
    // Default selection?
    if(state&ODS_DEFAULT)

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧洲亚洲国产日韩| 精品国产一区二区精华| 日韩一区二区三区四区| 久久嫩草精品久久久精品一| 亚洲视频一区二区免费在线观看 | 中文av一区二区| 亚洲电影一区二区| 丁香亚洲综合激情啪啪综合| 欧美日韩免费观看一区二区三区| 久久一区二区三区四区| 亚洲国产成人tv| 99re热这里只有精品免费视频| 日韩三级精品电影久久久| 亚洲日本va在线观看| 狠狠色综合日日| 欧美日韩精品欧美日韩精品一综合| 中文一区在线播放| 国产一区二区三区免费在线观看| 欧美日韩亚洲综合在线| 亚洲九九爱视频| av激情成人网| 国产区在线观看成人精品| 久88久久88久久久| 欧美一级免费观看| 日韩电影在线观看电影| 欧美日韩免费在线视频| 一区二区视频在线看| 91亚洲精品乱码久久久久久蜜桃| 国产日产欧产精品推荐色| 国产精品性做久久久久久| 精品国产一区二区三区久久久蜜月| 奇米精品一区二区三区四区| 7777精品久久久大香线蕉| 三级影片在线观看欧美日韩一区二区| 97精品国产97久久久久久久久久久久 | 麻豆传媒一区二区三区| 欧美日韩国产电影| 日产精品久久久久久久性色| 欧美精品成人一区二区三区四区| 亚洲一区二区三区在线看| 欧美日韩免费在线视频| 免费亚洲电影在线| 91精品国产日韩91久久久久久| 视频一区二区不卡| 26uuu成人网一区二区三区| 国产精品自拍毛片| 中文字幕综合网| 日本韩国一区二区| 天天综合网 天天综合色| 日韩欧美在线综合网| 精品一区二区免费| 日本一区二区三级电影在线观看 | 久久精品国产一区二区三| 欧美成人猛片aaaaaaa| 精品一区二区三区不卡| 久久久久久9999| www.在线成人| 性久久久久久久久| 久久综合九色综合欧美亚洲| 成人av资源下载| 亚洲成人激情综合网| 精品欧美一区二区三区精品久久| 国产成人a级片| 亚洲一区二区美女| 欧美精品一区二区三区久久久| 懂色av一区二区夜夜嗨| 亚洲尤物在线视频观看| 亚洲欧美视频在线观看视频| 91亚洲精华国产精华精华液| 午夜精品一区二区三区三上悠亚| 久久综合色婷婷| 91福利精品第一导航| 久久精品噜噜噜成人av农村| 亚洲欧洲日本在线| 日韩精品一区二区三区视频在线观看 | 亚洲最大成人综合| 精品伦理精品一区| 91国产成人在线| 激情另类小说区图片区视频区| 亚洲色图欧美偷拍| 久久这里都是精品| 欧美日本不卡视频| 高清shemale亚洲人妖| 亚洲.国产.中文慕字在线| 国产精品美女久久久久久久| 欧美人伦禁忌dvd放荡欲情| 成人免费高清在线| 韩国欧美一区二区| 日韩国产精品久久久久久亚洲| 国产精品久久久久久久午夜片| 日韩一区国产二区欧美三区| 91丝袜美腿高跟国产极品老师| 寂寞少妇一区二区三区| 亚欧色一区w666天堂| 亚洲视频免费看| 国产日产亚洲精品系列| 欧美电影免费观看完整版| 欧美日韩一二三区| 在线免费观看日本一区| 成人av网站在线观看免费| 国产专区欧美精品| 久久精品国产成人一区二区三区| 亚洲成人第一页| 亚洲一二三级电影| 国产成人自拍高清视频在线免费播放| 亚洲mv在线观看| 亚洲精品乱码久久久久久久久| 久久久国产精品午夜一区ai换脸| 精品免费国产一区二区三区四区| 欧美日韩黄色一区二区| 欧美伊人久久久久久午夜久久久久| 成人天堂资源www在线| 国产成人免费在线观看不卡| 国产麻豆精品在线观看| 国产乱子伦视频一区二区三区| 精品在线你懂的| 国产综合久久久久久鬼色| 国产在线精品不卡| 高清不卡在线观看| 一本大道久久a久久精品综合| 99久久婷婷国产综合精品| 91同城在线观看| 欧美中文字幕一二三区视频| 色吊一区二区三区| 欧美精品v国产精品v日韩精品 | 一片黄亚洲嫩模| 亚洲午夜影视影院在线观看| 亚洲国产精品欧美一二99| 日韩在线a电影| 久久精品国产久精国产爱| 久久激情五月激情| 顶级嫩模精品视频在线看| 色综合久久88色综合天天免费| 在线观看国产精品网站| 欧美精品一级二级| 久久亚洲一区二区三区四区| 欧美国产成人在线| 亚洲一区二区三区免费视频| 日本少妇一区二区| 国产精品亚洲专一区二区三区| 成人18视频在线播放| 欧美三级一区二区| 欧美哺乳videos| 1024成人网色www| 日韩高清欧美激情| 国产成人精品亚洲日本在线桃色| 99精品久久只有精品| 欧美乱妇15p| 国产亚洲欧美中文| 一二三区精品福利视频| 久久99精品国产麻豆不卡| voyeur盗摄精品| 欧美一级淫片007| 亚洲精品少妇30p| 久久99国产精品久久99 | 欧美一区二区视频在线观看2022 | 欧美精品九九99久久| 久久久久国产精品麻豆ai换脸| 一区二区三区在线观看动漫| 久久国产精品无码网站| 96av麻豆蜜桃一区二区| 日韩一级视频免费观看在线| 国产精品免费看片| 另类专区欧美蜜桃臀第一页| 成人avav在线| 精品福利在线导航| 一区二区三区免费在线观看| 激情综合色综合久久| 欧洲精品视频在线观看| 国产午夜精品一区二区三区嫩草| 亚洲高清久久久| 99久久婷婷国产| 欧美国产丝袜视频| 久久99久久久久久久久久久| 欧美综合一区二区三区| 欧美国产日韩一二三区| 久久99精品视频| 欧美精品色一区二区三区| 亚洲视频一区二区免费在线观看 | 精品一区二区精品| 欧美日韩成人综合| 亚洲精品你懂的| 99久久综合狠狠综合久久| 精品久久99ma| 美女性感视频久久| 欧美精品色一区二区三区| 一级日本不卡的影视| 不卡免费追剧大全电视剧网站| 久久久亚洲精品一区二区三区| 日韩影院在线观看| 精品视频一区 二区 三区| 亚洲男人的天堂在线aⅴ视频| 粉嫩在线一区二区三区视频| 日韩三区在线观看| 久久99精品国产| 欧美成人精品3d动漫h| 久久国产综合精品| 欧美精品一区二区三区蜜桃| 久久国产尿小便嘘嘘尿| 精品久久一区二区|