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

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

?? newmenu.cpp

?? 該文件包含有C8051單片機中實現UART波特率自檢的功能
?? CPP
?? 第 1 頁 / 共 5 頁
字號:
    {
      // 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;
      }
    }

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
午夜亚洲福利老司机| 国产拍揄自揄精品视频麻豆| 一区二区三区不卡在线观看| 97久久人人超碰| 亚洲精品日韩综合观看成人91| 91在线你懂得| 亚洲自拍偷拍麻豆| 91精品国产综合久久小美女| 麻豆专区一区二区三区四区五区| 精品福利在线导航| 成人国产在线观看| 亚洲综合色自拍一区| 日韩一区二区三区av| 国产精品亚洲а∨天堂免在线| 国产精品久久久久久久久动漫| 欧美曰成人黄网| 久草热8精品视频在线观看| 国产欧美精品在线观看| 欧美在线免费视屏| 久久精品免费观看| 亚洲欧洲国产专区| 91精品国产一区二区| 国产电影精品久久禁18| 一区二区成人在线视频| 26uuu精品一区二区三区四区在线| 成人手机在线视频| 日日摸夜夜添夜夜添亚洲女人| 国产免费观看久久| 欧美女孩性生活视频| 国产二区国产一区在线观看| 午夜久久电影网| 欧美极品xxx| 欧美一级在线视频| 99国产麻豆精品| 久久国产精品色婷婷| 亚洲精品菠萝久久久久久久| 欧美tk丨vk视频| 欧美色成人综合| 成人综合激情网| 久久精品国产亚洲a| 一区二区免费在线播放| 国产欧美一区二区精品性| 欧美精品乱码久久久久久| 成人国产精品视频| 精品综合免费视频观看| 一区二区免费视频| 18欧美亚洲精品| 26uuu精品一区二区在线观看| 欧美日韩一级二级| 99久久精品国产网站| 国产精品一二三四| 久久国产精品99精品国产| 亚洲国产综合色| 亚洲欧美日韩一区二区三区在线观看 | 狠狠色综合日日| 亚洲午夜在线观看视频在线| 国产精品理论片在线观看| 亚洲精品一线二线三线无人区| 在线成人小视频| 欧美视频一区在线| 一本色道久久综合狠狠躁的推荐| 成人午夜碰碰视频| 国产自产v一区二区三区c| 青青草国产精品亚洲专区无| 午夜视频在线观看一区| 亚洲国产欧美另类丝袜| 亚洲激情成人在线| 亚洲理论在线观看| 亚洲猫色日本管| 亚洲欧美日韩中文播放| 亚洲精品综合在线| 亚洲精品第1页| 一区二区三区av电影| 亚洲综合男人的天堂| 一区二区日韩av| 亚洲va韩国va欧美va| 视频在线观看91| 日韩高清一级片| 另类成人小视频在线| 精品一区二区三区久久| 黄色精品一二区| 国产a精品视频| 99国产精品一区| 欧美主播一区二区三区美女| 欧洲激情一区二区| 欧美精品第一页| 欧美精品一区二区三区在线 | 91在线精品一区二区| 91在线无精精品入口| 欧美性高清videossexo| 欧美日韩久久久一区| 欧美一区日韩一区| 26uuu国产在线精品一区二区| 国产日韩欧美一区二区三区乱码| 国产欧美精品一区aⅴ影院 | 国产成人免费在线观看| 成人性生交大片免费看在线播放| 91免费看视频| 制服视频三区第一页精品| 精品国产免费一区二区三区香蕉| 国产日韩精品一区| 亚洲欧美日韩在线不卡| 日韩精品亚洲专区| 精品一区二区国语对白| 成人一级视频在线观看| 欧美亚洲综合在线| 精品国内二区三区| 亚洲人成在线播放网站岛国| 五月天精品一区二区三区| 国产伦理精品不卡| 91精品福利视频| 精品av综合导航| 亚洲精品欧美综合四区| 精品写真视频在线观看| 99精品视频在线观看免费| 51精品视频一区二区三区| 国产精品色婷婷久久58| 亚洲成人动漫在线观看| 国产一区二三区| 欧美在线|欧美| 国产人久久人人人人爽| 午夜视频久久久久久| 成人av在线一区二区| 日韩一区二区三区视频在线| 亚洲另类在线一区| 国产一区二区在线观看视频| 欧美这里有精品| 国产精品网曝门| 奇米四色…亚洲| 欧美四级电影网| 国产精品的网站| 激情五月激情综合网| 欧美性做爰猛烈叫床潮| 亚洲国产精品二十页| 久久精品国产成人一区二区三区| 91传媒视频在线播放| 国产亚洲福利社区一区| 免费成人你懂的| 欧美日韩精品欧美日韩精品一| 中文字幕视频一区二区三区久| 强制捆绑调教一区二区| 欧美日韩精品久久久| 亚洲婷婷在线视频| 岛国av在线一区| 久久尤物电影视频在线观看| 奇米精品一区二区三区在线观看| 久久亚洲欧美国产精品乐播| 天天色 色综合| 欧美调教femdomvk| 亚洲综合色区另类av| 色综合久久九月婷婷色综合| 国产欧美一区二区精品婷婷| 韩国v欧美v亚洲v日本v| 日韩一区二区精品在线观看| 婷婷夜色潮精品综合在线| 欧美性大战久久| 亚洲一区二区三区四区中文字幕| 99精品视频在线观看免费| 国产精品欧美精品| 成人亚洲精品久久久久软件| 中文字幕的久久| 成人动漫一区二区在线| 中文字幕精品三区| 国产成人无遮挡在线视频| 久久久91精品国产一区二区三区| 精品一区二区在线观看| 2023国产精华国产精品| 国内精品国产成人| 国产日韩欧美综合在线| 丁香桃色午夜亚洲一区二区三区| 欧美国产激情二区三区| 成人在线一区二区三区| 中文字幕亚洲不卡| 日本韩国精品在线| 亚洲电影视频在线| 欧美电影在线免费观看| 日韩1区2区3区| 久久一二三国产| 成人va在线观看| 亚洲女子a中天字幕| 欧美中文字幕亚洲一区二区va在线 | 日韩不卡免费视频| 日韩欧美成人激情| 国产精品99久久久久久似苏梦涵 | 亚洲va国产va欧美va观看| 欧美一卡二卡在线| 国产精品一二二区| 成人欧美一区二区三区在线播放| 91久久精品网| 美女视频黄频大全不卡视频在线播放| 欧美一级黄色大片| 国产白丝网站精品污在线入口| 亚洲色图在线视频| 欧美一区二区精品在线| 国产一区二区三区免费在线观看 | 国产女人aaa级久久久级| 99久久精品国产一区| 日本欧美久久久久免费播放网| 久久婷婷综合激情| 欧洲av一区二区嗯嗯嗯啊|