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

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

?? newmenu.cpp

?? 方便的串口監視工具
?? 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| 丝袜美腿一区二区三区| 国产传媒日韩欧美成人| 日本国产一区二区| 日韩欧美的一区二区| 国产精品高潮呻吟| 丝瓜av网站精品一区二区| 国产 日韩 欧美大片| 欧美日韩一区二区三区免费看| 久久人人97超碰com| 亚洲国产一二三| 国产乱人伦偷精品视频不卡| 欧美偷拍一区二区| 久久精品视频一区二区三区| 亚洲综合丁香婷婷六月香| 激情久久五月天| 欧美亚洲动漫精品| 中文字幕高清一区| 麻豆精品久久久| 日本福利一区二区| 久热成人在线视频| 国产成人综合精品三级| 欧美日韩国产中文| 精品一区二区三区在线观看| 97久久超碰国产精品| 日韩一区国产二区欧美三区| 亚洲激情网站免费观看| 精品一区二区在线免费观看| 欧美在线观看你懂的| 欧美国产精品一区二区| 七七婷婷婷婷精品国产| 色视频一区二区| 国产精品无圣光一区二区| 蜜桃av噜噜一区二区三区小说| 色综合夜色一区| 久久久久成人黄色影片| 日本美女视频一区二区| 色综合av在线| 国产精品成人免费| 国产精品综合网| 日韩欧美国产小视频| 亚洲bt欧美bt精品| 在线观看免费视频综合| 国产精品久久久久久久岛一牛影视| 狠狠v欧美v日韩v亚洲ⅴ| 欧美电影在哪看比较好| 一区二区三区日韩欧美精品| 成人免费高清视频在线观看| 亚洲精品在线电影| 六月丁香婷婷久久| 51精品国自产在线| 亚洲成a人片综合在线| 色噜噜狠狠色综合欧洲selulu| 国产精品免费人成网站| 国产不卡视频在线播放| 精品少妇一区二区| 久久精品国产精品青草| 日韩一本二本av| 美日韩一级片在线观看| 欧美一区二区免费视频| 免费观看成人av| 日韩一级大片在线| 久久国产精品免费| 精品入口麻豆88视频| 精品一区二区在线播放| 久久综合久久综合亚洲| 国产中文字幕精品| 欧美精品一区二区高清在线观看 | 成人免费av资源| 久久久综合精品| 国产一区91精品张津瑜| 久久精品水蜜桃av综合天堂| 国产精品18久久久久久久久 | 无码av免费一区二区三区试看| 91福利小视频| 亚洲免费电影在线| 欧美性高清videossexo| 亚洲国产va精品久久久不卡综合 | 日本不卡中文字幕| 欧美这里有精品| 日欧美一区二区| 精品捆绑美女sm三区| 国产一区在线观看视频| 国产精品久久久久久久久免费樱桃 | 久久综合久久综合久久综合| 国产在线国偷精品免费看| 国产欧美日韩久久| 色综合天天狠狠| 香蕉av福利精品导航| 91精品国产综合久久小美女| 日本中文在线一区| 久久免费偷拍视频| 99riav久久精品riav| 亚洲国产精品久久久男人的天堂 | 蜜臂av日日欢夜夜爽一区| 久久久久久久久岛国免费| 成人性生交大片免费看视频在线| 亚洲欧美日韩久久| 在线成人免费视频| 久久99精品久久久| 亚洲欧洲日产国码二区| 欧美日韩一区二区三区视频| 激情丁香综合五月| 中文字幕日本乱码精品影院| 欧美色精品天天在线观看视频| 蜜桃视频在线观看一区二区| 久久久久久久久久美女| 91免费看`日韩一区二区| 天堂精品中文字幕在线| 国产女同互慰高潮91漫画| 91久久线看在观草草青青| 蜜臀av一区二区| 日韩美女视频19| 91精品国产色综合久久不卡电影| 国产精品18久久久| 五月婷婷综合网| 欧美经典一区二区三区| 欧美日韩国产一区| 高清不卡在线观看av| 日韩在线一二三区| 国产精品三级av在线播放| 9191国产精品| 成年人国产精品| 日产国产欧美视频一区精品| 国产精品国产三级国产aⅴ原创| 欧美精品一卡二卡| 成人黄色a**站在线观看| 美女精品一区二区| 夜夜夜精品看看| 中文字幕乱码久久午夜不卡| 91精品国产色综合久久不卡电影 | 亚洲国产成人av好男人在线观看| 国产亚洲一区二区三区| 欧美久久一区二区| 97国产精品videossex| 国产美女精品人人做人人爽| 丝袜国产日韩另类美女| 亚洲激情自拍视频| 中文字幕精品综合| 亚洲精品在线观看视频| 在线91免费看| 色网综合在线观看| 国产成人综合网站| 久久99精品国产麻豆婷婷洗澡| 亚洲成人动漫在线观看| 亚洲欧美自拍偷拍| 国产日韩精品久久久| 日韩美女一区二区三区| 欧美日韩国产综合久久| 91年精品国产| 成人黄页在线观看| 国产乱对白刺激视频不卡| 免费观看在线综合| 性做久久久久久免费观看欧美| 国产精品久久久久久久岛一牛影视| 亚洲黄色小说网站| 成人欧美一区二区三区白人 | 99视频有精品| 国产91精品精华液一区二区三区 | 国产欧美日韩综合| 久久嫩草精品久久久精品一| 日韩一区二区高清| 欧美精品 国产精品| 欧美中文字幕亚洲一区二区va在线| 99久久99久久精品免费观看| 国产成人av电影在线| 国产乱理伦片在线观看夜一区| 亚洲国产你懂的| 亚洲va在线va天堂| 亚洲精品免费视频| 亚洲日本一区二区三区| 国产精品久久久久久久裸模 | 91在线高清观看| 99九九99九九九视频精品| 成人免费毛片app| 国产成人欧美日韩在线电影| 国产不卡一区视频| 成人性生交大片免费看在线播放| 成人亚洲精品久久久久软件| 国产成人日日夜夜| www.激情成人| 91在线视频官网| 欧美午夜宅男影院| 欧美精品乱人伦久久久久久| 日韩一区二区高清| 日韩丝袜情趣美女图片| 欧美mv和日韩mv的网站| 久久一区二区三区国产精品| 精品人在线二区三区| 久久综合久久综合九色| 国产欧美一区视频| 亚洲三级在线看| 亚洲成a人在线观看| 九九九精品视频| 亚洲午夜视频在线观看| 亚洲成va人在线观看| 一区二区国产盗摄色噜噜|