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

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關(guān)于我們
? 蟲蟲下載站

?? newmenu.cpp

?? 方便的串口監(jiān)視工具
?? CPP
?? 第 1 頁 / 共 5 頁
字號(hào):
    {
      // 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+8 ? temp : m_iconY+8;
    
    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_WinXP(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::SetIconSize (int width, int height)
{
  m_iconX = width;
  m_iconY = height;
}

BOOL CNewMenu::AppendODMenu(LPCTSTR lpstrText,UINT nFlags,UINT nID,int nIconNormal)
{
  // Add the MF_OWNERDRAW flag if not specified:
  if(!nID)
  {
    if(nFlags&MF_BYPOSITION)
      nFlags=MF_SEPARATOR|MF_OWNERDRAW|MF_BYPOSITION;
    else
      nFlags=MF_SEPARATOR|MF_OWNERDRAW;
  }
  else if(!(nFlags & MF_OWNERDRAW))nFlags |= MF_OWNERDRAW;
  
  if(nFlags & MF_POPUP)
  {
    m_AllSubMenus.Add(UIntToHMenu(nID));
    m_SubMenus.Add(UIntToHMenu(nID));
  }
  
  CNewMenuItemData *mdata = new CNewMenuItemData;
  m_MenuList.Add(mdata);
  mdata->SetString(lpstrText);
  
  mdata->m_nMenuIconNormal = nIconNormal;
  mdata->m_nxOffset=-1;
  if(nIconNormal>=0)
  {
    mdata->m_nxOffset=0;
    LoadFromToolBar(nID,nIconNormal,mdata->m_nxOffset);
    if(mdata->m_pBitmap)
      mdata->m_pBitmap->DeleteImageList();
    else
      mdata->m_pBitmap=new(CImageList);
    mdata->m_pBitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
    if(!AddBitmapToImageList(mdata->m_pBitmap,nIconNormal))
    {
      mdata->m_pBitmap->DeleteImageList();
      delete mdata->m_pBitmap;
      mdata->m_pBitmap=NULL;
      mdata->m_nMenuIconNormal = nIconNormal = -1;
      mdata->m_nxOffset = -1;
    }
  }
  mdata->m_nFlags = nFlags;
  mdata->m_nID = nID;
  return(CMenu::AppendMenu(nFlags, nID, (LPCTSTR)mdata));
}

BOOL CNewMenu::AppendODMenu(LPCTSTR lpstrText,UINT nFlags,UINT nID,
                           CImageList *il,int xoffset)
{
  // Add the MF_OWNERDRAW flag if not specified:
  if(!nID)
  {
    if(nFlags&MF_BYPOSITION)
      nFlags=MF_SEPARATOR|MF_OWNERDRAW|MF_BYPOSITION;
    else 
      nFlags=MF_SEPARATOR|MF_OWNERDRAW;
  }
  else if(!(nFlags & MF_OWNERDRAW))
    nFlags |= MF_OWNERDRAW;
  
  if(nFlags & MF_POPUP)
  {
    m_AllSubMenus.Add(UIntToHMenu(nID));
    m_SubMenus.Add(UIntToHMenu(nID));
  }

  CNewMenuItemData* mdata = new CNewMenuItemData;
  m_MenuList.Add(mdata);
  mdata->SetString(lpstrText);

  if(il)
  {
    mdata->m_nMenuIconNormal = 0;
    mdata->m_nxOffset=0;
    if(mdata->m_pBitmap)
      mdata->m_pBitmap->DeleteImageList();
    else 
      mdata->m_pBitmap=new(CImageList);
    
    ImageListDuplicate(il,xoffset,mdata->m_pBitmap);
  }
  else
  {
    mdata->m_nMenuIconNormal = -1;
    mdata->m_nxOffset = -1;
  }
  mdata->m_nFlags = nFlags;
  mdata->m_nID = nID;
  return(CMenu::AppendMenu(nFlags, nID, (LPCTSTR)mdata));
}

BOOL CNewMenu::InsertODMenu(UINT nPosition,LPCTSTR lpstrText,UINT nFlags,UINT nID,
                           int nIconNormal)
{
  if(!(nFlags & MF_BYPOSITION))
  {
    int iPosition =0;
    CNewMenu* pMenu = FindMenuOption(nPosition,iPosition);
    if(pMenu)
    {
      return(pMenu->InsertODMenu(iPosition,lpstrText,nFlags|MF_BYPOSITION,nID,nIconNormal));
    }
    else 
      return(FALSE);
  }
  
  if(!nID)
    nFlags=MF_SEPARATOR|MF_OWNERDRAW|MF_BYPOSITION;
  else if(!(nFlags & MF_OWNERDRAW))
    nFlags |= MF_OWNERDRAW;
  
  if(nFlags & MF_POPUP)
  {
    m_AllSubMenus.Add(UIntToHMenu(nID));
    m_SubMenus.InsertAt(nPosition,UIntToHMenu(nID));
  }

  //Stephane Clog suggested adding this, believe it or not it's in the help 
  if(nPosition==(UINT)-1)
    nPosition=GetMenuItemCount();

  CNewMenuItemData *mdata = new CNewMenuItemData;
  m_MenuList.InsertAt(nPosition,mdata);
  mdata->SetString(lpstrText);
  
  mdata->m_nMenuIconNormal = nIconNormal;
  mdata->m_nxOffset=-1;
  if(nIconNormal>=0)
  {
    mdata->m_nxOffset=0;
    LoadFromToolBar(nID,nIconNormal,mdata->m_nxOffset);
    if(mdata->m_pBitmap)
      mdata->m_pBitmap->DeleteImageList();
    else
      mdata->m_pBitmap=new(CImageList);

    mdata->m_pBitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
    if(!AddBitmapToImageList(mdata->m_pBitmap,nIconNormal))
    {
      mdata->m_pBitmap->DeleteImageList();
      delete mdata->m_pBitmap;
      mdata->m_pBitmap=NULL;
      mdata->m_nMenuIconNormal = nIconNormal = -1;
      mdata->m_nxOffset = -1;
    }
  }
  mdata->m_nFlags = nFlags;
  mdata->m_nID = nID;
  return(CMenu::InsertMenu(nPosition,nFlags,nID,(LPCTSTR)mdata));
}

BOOL CNewMenu::InsertODMenu(UINT nPosition,LPCTSTR lpstrText,UINT nFlags,UINT nID,
                           CImageList *il,int xoffset)
{
  if(!(nFlags & MF_BYPOSITION))
  {
    int iPosition =0;
    CNewMenu* pMenu = FindMenuOption(nPosition,iPosition);
    if(pMenu)
    {
      return(pMenu->InsertODMenu(iPosition,lpstrText,nFlags|MF_BYPOSITION,nID,il,xoffset));
    }
    else 
      return(FALSE);
  }
  
  if(!nID)
    nFlags=MF_SEPARATOR|MF_OWNERDRAW|MF_BYPOSITION;
  else if(!(nFlags & MF_OWNERDRAW))
    nFlags |= MF_OWNERDRAW;
  
  if(nFlags & MF_POPUP)
  {
    m_AllSubMenus.Add(UIntToHMenu(nID));
    m_SubMenus.InsertAt(nPosition,UIntToHMenu(nID));
  }
  
  //Stephane Clog suggested adding this, believe it or not it's in the help 
  if(nPosition==(UINT)-1)
    nPosition=GetMenuItemCount();
  
  CNewMenuItemData *mdata = new CNewMenuItemData;
  m_MenuList.InsertAt(nPosition,mdata);
  mdata->SetString(lpstrText);

  if(il)
  {
    mdata->m_nMenuIconNormal = 0;
    mdata->m_nxOffset=0;
    if(mdata->m_pBitmap)
      mdata->m_pBitmap->DeleteImageList();
    else
      mdata->m_pBitmap=new(CImageList);
    ImageListDuplicate(il,xoffset,mdata->m_pBitmap);
  }
  else
  {
    mdata->m_nMenuIconNormal = -1;
    mdata->m_nxOffset = -1;
  }
  mdata->m_nFlags = nFlags;
  mdata->m_nID = nID;
  return(CMenu::InsertMenu(nPosition,nFlags,nID,(LPCTSTR)mdata));
}

BOOL CNewMenu::ModifyODMenu(LPCTSTR lpstrText,UINT nID,int nIconNormal)
{
  int nLoc;
  CNewMenuItemData *mdata;
  CArray<CNewMenu*,CNewMenu*>newSubs;
  CArray<int,int&>newLocs;

  // Find the old CNewMenuItemData structure:
  CNewMenu *psubmenu = FindMenuOption(nID,nLoc);
  do {
    if(psubmenu && nLoc>=0)
      mdata = psubmenu->m_MenuList[nLoc];
    else
    {
      // Create a new CNewMenuItemData structure:
      mdata = new CNewMenuItemData;
      m_MenuList.Add(mdata);
    }

    ASSERT(mdata);
    if(lpstrText)
      mdata->SetString(lpstrText);
    mdata->m_nMenuIconNormal = nIconNormal;
    mdata->m_nxOffset=-1;
    if(nIconNormal>=0)
    {
      mdata->m_nxOffset=0;
      LoadFromToolBar(nID,nIconNormal,mdata->m_nxOffset);
      if(mdata->m_pBitmap)
        mdata->m_pBitmap->DeleteImageList();
      else
        mdata->m_pBitmap=new CImageList;

      mdata->m_pBitmap->Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
      if(!AddBitmapToImageList(mdata->m_pBitmap,nIconNormal))
      {
        mdata->m_pBitmap->DeleteImageList();
        delete mdata->m_pBitmap;
        mdata->m_pBitmap=NULL;
        mdata->m_nMenuIconNormal = nIconNormal = -1;
        mdata->m_nxOffset = -1;
      }
    }
    mdata->m_nFlags &= ~(MF_BYPOSITION);
    mdata->m_nFlags |= MF_OWNERDRAW;
    mdata->m_nID = nID;
    newSubs.Add(psubmenu);
    newLocs.Add(nLoc);
    if(psubmenu && nLoc>=0)
      psubmenu = FindAnotherMenuOption(nID,nLoc,newSubs,newLocs);
    else 
      psubmenu=NULL;
  
  }while(psubmenu);

  return (CMenu::ModifyMenu(nID,mdata->m_nFlags,nID,(LPCTSTR)mdata));
}

BOOL CNewMenu::ModifyODMenu(LPCTSTR lpstrText,UINT nID,CImageList *pil,int xoffset)
{
  int nLoc;
  CNewMenuItemData *mdata;
  CArray<CNewMenu*,CNewMenu*>newSubs;
  CArray<int,int&>newLocs;
  
  // Find the old CNewMenuItemData structure:
  CNewMenu *psubmenu = FindMenuOption(nID,nLoc);
  do {
    if(psubmenu && nLoc>=0)
    {
      mdata = psubmenu->m_MenuList[nLoc];
    }
    else
    {
      // Create a new CNewMenuItemData structure:
      mdata = new CNewMenuItemData;
      m_MenuList.Add(mdata);
    }

    ASSERT(mdata);
    if(lpstrText)
    {
      mdata->SetString(lpstrText);
    }

    if(pil)
    {
      mdata->m_nMenuIconNormal = 0;
      mdata->m_nxOffset=0;
      if(mdata->m_pBitmap)
        mdata->m_pBitmap->DeleteImageList();
      else 
        mdata->m_pBitmap=new(CImageList);

      ImageListDuplicate(pil,xoffset,mdata->m_pBitmap);
      int x=0;
      int y=0;
      if(psubmenu && ImageList_GetIconSize(pil->m_hImageList,&x,&y))
      {
        // Correct the size of the menuitem
        psubmenu->m_iconX = max(psubmenu->m_iconX,x);
        psubmenu->m_iconY = max(psubmenu->m_iconY,y);
      }
    }
    else
    {
      mdata->m_nMenuIconNormal = -1;
      mdata->m_nxOffset = -1;
    }
    mdata->m_nFlags &= ~(MF_BYPOSITION);
    mdata->m_nFlags |= MF_OWNERDRAW;
    mdata->m_nID = nID;
    newSubs.Add(psubmenu);
    newLocs.Add(nLoc);
    if(psubmenu && nLoc>=0)
      psubmenu = FindAnotherMenuOption(nID,nLoc,newSubs,newLocs);
    else 
      psubmenu=NULL;
  } while(psubmenu);

  return (CMenu::ModifyMenu(nID,mdata->m_nFlags,nID,(LPCTSTR)mdata));
}

BOOL CNewMenu::ModifyODMenu(LPCTSTR lpstrText,UINT nID,CBitmap *bmp)
{
  if (bmp)
  {
    CImageList temp;
    temp.Create(m_iconX,m_iconY,ILC_COLORDDB|ILC_MASK,1,1);
    
    temp.Add(bmp,GetBitmapBackground());

    return ModifyODMenu(lpstrText,nID,&temp,0);
  }
  return ModifyODMenu(lpstrText,nID,NULL,0);
}

BOOL CNewMenu::ModifyODMenu(LPCTSTR lpstrText,UINT nID,COLORREF fill,COLORREF border,int hatchstyle)
{
  // Get device context
  CClientDC DC(0);
  CSize bitmap_size(m_iconX,m_iconY);
  CBitmap bmp;
  ColorBitmap(&DC,bmp,bitmap_size,fill,border,hatchstyle);  
  return ModifyODMenu(lpstrText,nID,&bmp);
}

BOOL CNewMenu::ModifyODMenu(LPCTSTR lpstrText,LPCTSTR OptionText, int nIconNormal)
{
  int nIndex = 0;
  CNewMenu* pOptionMenu = FindMenuOption(OptionText,nIndex);

  if(pOptionMenu!=NULL && nIndex>=0)
  {
    CNewMenuItemData* pmdata = pOptionMenu->m_MenuList[nIndex];
    if(lpstrText)
    {
      pmdata->SetString(lpstrText);
    }
    pmdata->m_nMenuIconNormal = nIconNormal;
    pmdata->m_nxOffset=-1;
    if(nIconNormal>=0)
    {
      pmdata->m_nxOffset=0;
      if(pmdata->m_pBitmap)
        pmdata->m_pBitmap->DeleteImageList();
      else
        pmdata->m_pBitmap=new(CImageList);

      if (!m_bDynIcons)
      {
        CBitmap temp;
        // Try to load the bitmap for getting dimension
        if(temp.LoadBitmap(nIconNormal))
        {
          BITMAP bitmap;
          ZeroMemory(&bitmap,sizeof(bitmap));
          if(temp.GetBitmap(&bitmap))
          {
            pOptionMenu->m_iconX = max(pOptionMenu->m_iconX,bitmap.bmWidth);
            pOptionMenu->m_iconY = max(pOptionMenu->m_iconY,bitmap.bmHeight);
          }
        }
      }

      pmdata->m_pBitmap->Create(pOptionMenu->m_iconX,pOptionMenu->m_iconY,ILC_COLORDDB|ILC_MASK,1,1);

      if(!AddBitmapToImageList(pmdata->m_pBitmap,nIconNormal))
      {
        pmdata->m_pBitmap->DeleteImageList();
        delete pmdata->m_pBitmap;
        pmdata->m_pBitmap=NULL;
        pmdata->m_nMenuIconNormal = nIconNormal = -1;
        pmdata->m_nxOffset = -1;
      }
    }

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
久久99最新地址| 视频一区二区三区中文字幕| 亚洲欧美日韩一区| 亚洲自拍欧美精品| 日韩高清不卡在线| 国产乱码精品一区二区三| 北岛玲一区二区三区四区 | 久久久国产精品不卡| 中文字幕一区二区三区视频| 午夜精品在线看| 国产成人精品1024| 欧美性猛交xxxx黑人交| 精品国产一区二区三区久久久蜜月| 国产精品美女久久久久久2018| 亚洲国产乱码最新视频| 国产精品综合视频| 在线视频欧美精品| 欧洲生活片亚洲生活在线观看| 久久久综合视频| 一区二区三区四区激情| 久久99精品国产麻豆婷婷| 波多野结衣一区二区三区| 在线电影院国产精品| 中文字幕精品一区二区三区精品| 一区二区三区蜜桃网| 极品尤物av久久免费看| 欧美综合一区二区三区| 国产婷婷一区二区| 日本不卡123| 91久久一区二区| 欧美经典一区二区三区| 日韩不卡一区二区三区| 91在线小视频| 久久久久久久久久美女| 日韩在线一区二区三区| 一本久道久久综合中文字幕| 久久久亚洲精品石原莉奈| 天堂成人免费av电影一区| 99久久伊人网影院| 欧美成人高清电影在线| 亚洲国产日韩a在线播放性色| 高清在线不卡av| 2020国产成人综合网| 日韩专区中文字幕一区二区| 老司机午夜精品99久久| 国产精品18久久久久久久久| 欧美日韩综合色| 中文乱码免费一区二区| 久久精品久久99精品久久| 91国内精品野花午夜精品| 中文字幕欧美日韩一区| 久久99国产精品麻豆| 欧美精品自拍偷拍| 亚洲电影第三页| 在线观看亚洲精品| 亚洲人成网站影音先锋播放| av电影天堂一区二区在线| 久久精品一区四区| 国产一区二区网址| 日韩美女在线视频| 人人狠狠综合久久亚洲| 在线播放国产精品二区一二区四区| 亚洲一区二区三区四区在线观看 | 精品久久久久久久久久久久久久久久久 | 六月丁香婷婷色狠狠久久| 7777精品伊人久久久大香线蕉最新版| 精品国产凹凸成av人导航| 亚洲444eee在线观看| 91日韩精品一区| 亚洲特黄一级片| av电影在线不卡| 一区二区中文字幕在线| 成人综合在线视频| 中文字幕 久热精品 视频在线| 国产精品一区久久久久| 精品国产一区二区国模嫣然| 国内精品国产三级国产a久久| 精品少妇一区二区三区视频免付费| 日本欧美在线看| 日韩欧美区一区二| 日本中文字幕一区二区视频 | 夜夜精品浪潮av一区二区三区| 91原创在线视频| 亚洲自拍偷拍图区| 538在线一区二区精品国产| 亚洲精品日产精品乱码不卡| 亚洲欧洲国产专区| av一区二区三区黑人| 国产精品护士白丝一区av| 日韩亚洲欧美一区二区三区| 三级一区在线视频先锋| 日韩亚洲欧美一区二区三区| 激情综合色丁香一区二区| 精品电影一区二区| 成人综合婷婷国产精品久久 | 国产99久久久久| 国产精品超碰97尤物18| 91福利精品第一导航| 婷婷中文字幕一区三区| 精品理论电影在线| 成人涩涩免费视频| 亚洲综合一二区| 日韩一区二区视频在线观看| 国产91在线看| 亚洲综合色视频| 精品国产乱码久久| 成人小视频免费在线观看| 一区二区在线免费| 日韩亚洲欧美一区二区三区| 国产乱子轮精品视频| 亚洲日本在线天堂| 欧美日韩一区中文字幕| 亚洲男人都懂的| 蜜桃av一区二区三区电影| 欧美成人vps| a亚洲天堂av| 丝袜亚洲另类欧美| 国产亚洲va综合人人澡精品| 97se亚洲国产综合自在线不卡| 午夜精品久久久久久久久久| 久久综合中文字幕| 色呦呦网站一区| 久久狠狠亚洲综合| 亚洲视频中文字幕| 欧美一二三四区在线| www.亚洲色图| 青青草原综合久久大伊人精品| 国产精品免费视频网站| 欧美乱妇20p| 成人激情综合网站| 蜜臀av一区二区三区| 国产精品国产成人国产三级 | 亚洲欧美国产三级| 精品日韩欧美在线| 91久久精品一区二区二区| 久久99蜜桃精品| 一区二区久久久久久| 日本精品一级二级| 蜜臀99久久精品久久久久久软件| 中文字幕一区二区在线播放| 欧美一区二区视频网站| 91在线精品一区二区| 国产在线播精品第三| 亚洲图片欧美色图| 国产精品久久久久桃色tv| 日韩欧美中文字幕公布| 色天使色偷偷av一区二区| 国产福利不卡视频| 免费成人在线观看视频| 亚洲午夜激情网页| 亚洲男人都懂的| 国产精品色在线观看| 精品久久人人做人人爽| 欧美精品tushy高清| 91视视频在线直接观看在线看网页在线看| 青青草原综合久久大伊人精品| 亚洲一区二区三区在线| 国产精品久99| 中文在线免费一区三区高中清不卡| 日韩区在线观看| 欧美日韩国产高清一区| 一本色道久久综合狠狠躁的推荐| 成人免费黄色在线| 国产酒店精品激情| 国产在线视频精品一区| 蜜臀国产一区二区三区在线播放| 亚洲图片一区二区| 亚洲一二三四区| 亚洲精品乱码久久久久久黑人| 国产精品免费丝袜| 国产精品视频九色porn| 欧美韩日一区二区三区| 国产欧美精品区一区二区三区 | 国产99久久久精品| 国产一区二区精品久久99| 久久精品av麻豆的观看方式| 日本中文字幕一区二区有限公司| 三级精品在线观看| 日韩avvvv在线播放| 日本在线播放一区二区三区| 午夜视黄欧洲亚洲| 日韩不卡在线观看日韩不卡视频| 日韩电影在线一区二区三区| 日韩主播视频在线| 免费在线观看一区二区三区| 奇米精品一区二区三区四区| 日韩国产欧美在线视频| 青青青伊人色综合久久| 精品在线免费观看| 韩国av一区二区| 国产成人av影院| 成人精品小蝌蚪| 99在线精品一区二区三区| 99re成人精品视频| 色88888久久久久久影院按摩| 成人动漫av在线| 色综合久久久久| 欧美三级韩国三级日本一级| 69p69国产精品| 久久一区二区三区四区|