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

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

?? atlctrlxp.h

?? 一款最完整的工業(yè)組態(tài)軟源代碼
?? H
?? 第 1 頁(yè) / 共 3 頁(yè)
字號(hào):
      // Make flat menu overlap with menu button at its bottom frame line
      if( lpParams ) {
         lpParams->rcExclude.bottom -= 1; // don't exclude bottom frame
         y -= 1;                          // and move up the menu
      }

#ifndef TPM_HORPOSANIMATION
      const UINT TPM_HORPOSANIMATION = 0x0400;
      const UINT TPM_HORNEGANIMATION = 0x0800;
      const UINT TPM_VERPOSANIMATION = 0x1000;
      const UINT TPM_VERNEGANIMATION = 0x2000;
#endif // TPM_HORPOSANIMATION
#ifndef TPM_NOANIMATION
      const UINT TPM_NOANIMATION = 0x4000;
#endif // TPM_NOANIMATION
      OSVERSIONINFO ovi;
      ovi.dwOSVersionInfoSize = sizeof(OSVERSIONINFO);
      BOOL bRet = ::GetVersionEx(&ovi);
      if( bRet && 
          ovi.dwPlatformId == VER_PLATFORM_WIN32_NT && 
          ovi.dwMajorVersion <= 4 ) 
      {
         // There are no menu-animations on Windows NT 4, so we
         // don't tinker with the flags. NT4 might fail otherwise.
         // Thanks to Andy Karels for this tip.
      }
      else {
         // We need to turn off animations because they mess up the first menu paint.
         // Thanks to Ramon Casellas for this tip.
         uFlags |= TPM_NOANIMATION;
         uFlags &= ~( TPM_HORPOSANIMATION | TPM_HORNEGANIMATION | TPM_VERPOSANIMATION | TPM_VERNEGANIMATION );
      }

      // Toggle menu fading/animation mode (Windows2K or later)
#ifndef SPI_GETMENUFADE
      const UINT SPI_GETMENUFADE = 0x1012;
      const UINT SPI_SETMENUFADE = 0x1013;
#endif // SPI_GETMENUFADE
#ifndef SPI_GETMENUANIMATION
      const UINT SPI_GETMENUANIMATION = 0x1002;
      const UINT SPI_SETMENUANIMATION = 0x1003;
#endif // SPI_GETMENUANIMATION
#ifndef SPI_GETANIMATION
      const UINT SPI_GETANIMATION = 0x0048;
      const UINT SPI_SETANIMATION = 0x0049;
#endif // SPI_GETANIMATION
      BOOL bMenuFading = FALSE;
      BOOL bMenuAnim = FALSE;
      if( ovi.dwMajorVersion >= 5 )
      {
         bRet = ::SystemParametersInfo(SPI_GETMENUFADE, 0, &bMenuFading, 0);
         bRet = ::SystemParametersInfo(SPI_GETMENUANIMATION, 0, &bMenuAnim, 0);
         bRet = ::SystemParametersInfo(SPI_SETMENUFADE, 0, (LPVOID) FALSE, SPIF_SENDWININICHANGE);
         bRet = ::SystemParametersInfo(SPI_SETMENUANIMATION, 0, (LPVOID) FALSE, SPIF_SENDWININICHANGE);
      }
#ifdef _CMDBAR_EXTRA_TRACE
      ATLTRACE2(atlTraceUI, 0, "CmdBar - DoTrackPopupMenu:, bMenuFading = %s, bMenuAnim = %s\n",
         bMenuFading ? "true" : "false", bMenuAnim ? "true" : "false");
#endif

      // Figure out the size of the pressed button
      if( !m_bContextMenu ) GetItemRect(m_nPopBtn, &m_rcButton);

      CMenuHandle menuPopup = hMenu;

      ::EnterCriticalSection(&_Module.m_csWindowCreate);

      ATLASSERT(s_hCreateHook == NULL);

      s_pCurrentBar = static_cast<CCommandBarCtrlBase*>(this);

      s_hCreateHook = ::SetWindowsHookEx(WH_CBT, MyCreateHookProc, _Module.GetModuleInstance(), GetCurrentThreadId());
      ATLASSERT(s_hCreateHook != NULL);

      m_bPopupItem = false;
      m_bMenuActive = true;

      BOOL bTrackRet = menuPopup.TrackPopupMenuEx(uFlags, x, y, m_hWnd, lpParams);
      m_bMenuActive = false;

      ::UnhookWindowsHookEx(s_hCreateHook);

      s_hCreateHook = NULL;
      s_pCurrentBar = NULL;

      ::LeaveCriticalSection(&_Module.m_csWindowCreate);

      // Cleanup - convert menus back to original state
#ifdef _CMDBAR_EXTRA_TRACE
      ATLTRACE2(atlTraceUI, 0, "CmdBar - TrackPopupMenu - cleanup\n");
#endif

      ATLASSERT(m_stackMenuWnd.GetSize() == 0);

      // These updates are also from the original WTL CommandBar control
      // but they actually solves some paint problems with submenus in this
      // control as well.
      UpdateWindow();
      CWindow wndTL = GetTopLevelParent();
      wndTL.UpdateWindow();

      // Restore menu fade/animation mode (Windows2K or later)
      if( ovi.dwMajorVersion >= 5 )
      {
         bRet = ::SystemParametersInfo(SPI_SETMENUFADE, 0, (LPVOID) bMenuFading, SPIF_SENDWININICHANGE);
         bRet = ::SystemParametersInfo(SPI_SETMENUANIMATION, 0, (LPVOID) bMenuAnim, SPIF_SENDWININICHANGE);
      }

      // Restore the menu items to the previous state for all menus that were converted
      if( m_bImagesVisible )
      {
         HMENU hMenuSav;
         while( (hMenuSav = m_stackMenuHandle.Pop()) != NULL ) {
            menuPopup = hMenuSav;
            BOOL bRet = FALSE;
            // Restore state and delete menu item data
            for( int i = 0; i < menuPopup.GetMenuItemCount(); i++ ) {
               CMenuItemInfo mii;
               mii.fMask = MIIM_DATA | MIIM_TYPE | MIIM_ID;
               bRet = menuPopup.GetMenuItemInfo(i, TRUE, &mii);
               ATLASSERT(bRet);

               _MenuItemData* pMI = (_MenuItemData*)mii.dwItemData;
               if( pMI != NULL && pMI->IsCmdBarMenuItem() )
               {
                  mii.fMask = MIIM_DATA | MIIM_TYPE | MIIM_STATE;
                  mii.fType = pMI->fType;
                  mii.fState = pMI->fState;
                  mii.dwTypeData = pMI->lpstrText;
                  mii.cch = lstrlen(pMI->lpstrText);
                  mii.dwItemData = NULL;

                  bRet = menuPopup.SetMenuItemInfo(i, TRUE, &mii);
                  // This one triggers WM_MEASUREITEM
                  menuPopup.ModifyMenu(i, MF_BYPOSITION | mii.fType | mii.fState, mii.wID, pMI->lpstrText);
                  ATLASSERT(bRet);

                  delete [] pMI->lpstrText;
                  delete pMI;
               }
            }
         }
      }
      return bTrackRet;
   }

   // Implementation - Hook procs
   
   static LRESULT CALLBACK MyCreateHookProc(int nCode, WPARAM wParam, LPARAM lParam)
   {
      LRESULT lRet = 0;
      TCHAR szClassName[7];

      if( nCode == HCBT_CREATEWND )
      {
         HWND hWndMenu = (HWND)wParam;
#ifdef _CMDBAR_EXTRA_TRACE
         ATLTRACE2(atlTraceUI, 0, "CmdBar - HCBT_CREATEWND (HWND = %8.8X)\n", hWndMenu);
#endif

         ::GetClassName(hWndMenu, szClassName, 7);
         if( ::lstrcmp(_T("#32768"), szClassName) == 0 ) {
            s_pCurrentBar->m_stackMenuWnd.Push(hWndMenu);

            // Subclass to a flat-looking menu
            CFlatMenuWindow* wnd = new CFlatMenuWindow(m_rcButton.right - m_rcButton.left, m_xpstyle.clrFrame, m_xpstyle.clrBackground, m_xpstyle.clrMenu);
            wnd->SubclassWindow(hWndMenu);
            wnd->SetWindowPos(HWND_TOP, 0,0,0,0, SWP_NOMOVE | SWP_NOSIZE | SWP_NOZORDER | SWP_NOACTIVATE | SWP_FRAMECHANGED | SWP_DRAWFRAME);
            ::SetRectEmpty(&m_rcButton);
         }
      }
      else if( nCode == HCBT_DESTROYWND )
      {
         HWND hWndMenu = (HWND)wParam;
#ifdef _CMDBAR_EXTRA_TRACE
         ATLTRACE2(atlTraceUI, 0, "CmdBar - HCBT_DESTROYWND (HWND = %8.8X)\n", hWndMenu);
#endif

         ::GetClassName(hWndMenu, szClassName, 7);
         if( ::lstrcmp(_T("#32768"), szClassName) == 0 )
         {
            ATLASSERT(hWndMenu == s_pCurrentBar->m_stackMenuWnd.GetCurrent());
            s_pCurrentBar->m_stackMenuWnd.Pop();
         }
      }
      else if( nCode < 0 )
      {
         lRet = ::CallNextHookEx(s_hCreateHook, nCode, wParam, lParam);
      }
      return lRet;
   }

   // Implementation - ownerdraw overridables and helpers

   LRESULT OnSettingChange(UINT /*uMsg*/, WPARAM /*wParam*/, LPARAM /*lParam*/, BOOL& bHandled)
   {
      // Update colors
      _GetSystemSettings();
      // Allow WTL Command Bar to set its settings...
      bHandled = FALSE;
      return 0;
   }

   // Ownerdrawn menu

   void MeasureItem(LPMEASUREITEMSTRUCT lpMeasureItemStruct)
   {
      _MenuItemData* pmd = (_MenuItemData*)lpMeasureItemStruct->itemData;

      if( (pmd->fType & MFT_SEPARATOR) != 0 ) // separator - is really small
      {
         lpMeasureItemStruct->itemHeight = 5;
         lpMeasureItemStruct->itemWidth  = 0;
      }
      else
      {
         // ** Removed 'static' as suggested by Ilya Kheifets.
         CFont fontBold;
         // Compute size of text - use DrawText with DT_CALCRECT
         CWindowDC dc = m_hWnd;
         HFONT hOldFont;
         if( (pmd->fState & MFS_DEFAULT) != 0 ) {
            // Need bold version of font
            LOGFONT lf;
            m_fontMenu.GetLogFont(lf);
            lf.lfWeight += 200;
            fontBold.CreateFontIndirect(&lf);
            ATLASSERT(!fontBold.IsNull());
            hOldFont = dc.SelectFont(fontBold);
         }
         else {
            hOldFont = dc.SelectFont(m_fontMenu);
         }

         RECT rcText = { 0 };
         dc.DrawText(pmd->lpstrText, -1, &rcText, DT_SINGLELINE | DT_LEFT | DT_VCENTER | DT_CALCRECT);
         dc.SelectFont(hOldFont);

         int cx = rcText.right - rcText.left;

         LOGFONT lf;
         m_fontMenu.GetLogFont(lf);
         int cy = lf.lfHeight;
         if( cy < 0 ) cy = -cy;
         cy += 10;

         // Height of item is the bigger of these two
         lpMeasureItemStruct->itemHeight = max(cy, (int) m_szButton.cy + 2);

         // Width is width of text plus a bunch of stuff
         cx += 2 * s_kcxTextMargin;       // L/R margin for readability
         cx += s_kcxGap;                  // Space between button and menu text
         cx += 2 * m_szButton.cx;         // Button width (L=button; R=empty margin)

         // Windows adds 1 to returned value
         cx -= ::GetSystemMetrics(SM_CXMENUCHECK) - 1;
         lpMeasureItemStruct->itemWidth = cx;      // done deal
      }
   }

   void DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct)
   {
      _MenuItemData* pmd = (_MenuItemData*) lpDrawItemStruct->itemData;
      CDCHandle dc = lpDrawItemStruct->hDC;
      const RECT& rcItem = lpDrawItemStruct->rcItem;

      bool bSelected = (lpDrawItemStruct->itemState & ODS_SELECTED) != 0;
      bool bDisabled = (lpDrawItemStruct->itemState & ODS_GRAYED) != 0;
      bool bChecked = (lpDrawItemStruct->itemState & ODS_CHECKED) != 0;

      if( LOWORD(lpDrawItemStruct->itemID) == (WORD) -1 ) bSelected = false;
      
      RECT rcButn = { rcItem.left, rcItem.top, rcItem.left + m_szButton.cx, rcItem.top + m_szButton.cy }; // button rect
      ::OffsetRect(&rcButn, 0, ((rcItem.bottom - rcItem.top) - (rcButn.bottom - rcButn.top)) / 2); // center vertically

      int cxButn = m_szButton.cx;
      RECT rcIcon = rcItem;
      RECT rcText = rcItem;
      rcText.left += cxButn + s_kcxGap;
      rcIcon.right = rcText.left;

      // Draw background

      if( !bDisabled && bSelected ) 
      {
         CBrush brush;
         CPen pen;
         brush.CreateSolidBrush(m_xpstyle.clrHighlight);
         pen.CreatePen(PS_SOLID, 1, m_xpstyle.clrHighlightBorder);
         HPEN hOldPen = dc.SelectPen(pen);
         HBRUSH hOldBrush = dc.SelectBrush(brush);
         dc.Rectangle(&rcItem);
         dc.SelectPen(hOldPen);
         dc.SelectBrush(hOldBrush);
      }
      else 
      {
         CBrush brushIcon;
         CBrush brushText;
         brushIcon.CreateSolidBrush(m_xpstyle.clrMenu);
         brushText.CreateSolidBrush(m_xpstyle.clrBackground);      
         dc.FillRect(&rcIcon, brushIcon);
         dc.FillRect(&rcText, brushText);
      }

      // Draw item

      if( (pmd->fType & MFT_SEPARATOR) != 0 ) 
      {
         // Draw separator

         CPen pen;
         pen.CreatePen(PS_SOLID, 1, m_xpstyle.clrMenu);
         HPEN hOldPen = dc.SelectPen(pen);

         RECT rc = rcText;
         rc.top += (rc.bottom - rc.top) / 2;   // vertical center
         rc.left += s_kcxTextMargin + 4;
         dc.MoveTo(rc.left, rc.top);
         dc.LineTo(rc.right, rc.top);

         dc.SelectPen(hOldPen);
      }
      else  // Not a separator
      {      
         
         // Draw icon

         int iButton = pmd->iButton;
         if( iButton >= 0 ) {
            // Calc drawing point
            SIZE sz = { rcButn.right - rcButn.left - m_szBitmap.cx, rcButn.bottom - rcButn.top - m_szBitmap.cy };
            sz.cx /= 2;
            sz.cy /= 2;
            POINT point = { rcButn.left + sz.cx, rcButn.top + sz.cy };
            if( bDisabled ) {
               DrawShadowIcon(dc, m_hImageList, point, iButton);
            }
            else {
               if( bSelected ) {
                  // Draw shadow
                  if( (m_dwExtendedStyle & CBR_EX_NOWIGGLE) == 0 ) {
                     point.x++;
                     point.y++;
                     DrawShadowIcon(dc, m_hImageList, point, iButton);
                     point.x -= 2;
                     point.y -= 2;
                  }
                  else {
                     DrawShadowIcon(dc, m_hImageList, point, iButton);
                  }
               }
               // Draw the image
               ImageList_Draw(m_hImageList, iButton, dc, point.x, point.y, ILD_TRANSPARENT);
            }
         }
         else {
            // No image - look for custom checked/unchecked bitmaps
            CMenuItemInfo info;
            info.fMask = MIIM_CHECKMARKS | MIIM_TYPE;
            ::GetMenuItemInfo( (HMENU)lpDrawItemStruct->hwndItem, lpDrawItemStruct->itemID, MF_BYCOMMAND, &info );
            if( bChecked || info.hbmpUnchecked != NULL ) {
               bool bRadio = ((info.fType & MFT_RADIOCHECK) != 0);
               DrawCheckmark(dc, rcButn, bSelected, bDisabled, bRadio, bChecked);
            }
         }

         // Draw text

         COLORREF clrText;
         if( bDisabled ) clrText = m_xpstyle.clrGreyText;
         else if( bSelected ) clrText = m_xpstyle.clrSelMenuText;
         else clrText = m_xpstyle.clrMenuText;

         rcText.right -= cxButn;
         rcText.left += s_kcxTextMargin;
         dc.SetBkMode(TRANSPARENT);
         DrawMenuText(dc, rcText, pmd->lpstrText, clrText); // finally!        
      }
   }

   void DrawMenuText(CDCHandle& dc, RECT& rc, LPCTSTR lpstrText, COLORREF color) const

?? 快捷鍵說(shuō)明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲精品网站在线观看| 日本视频免费一区| 日韩欧美中文字幕精品| 成人免费高清在线观看| 日韩精品一二三区| 亚洲欧美日韩久久精品| 久久综合九色综合欧美就去吻 | 日韩一区二区三| 91亚洲国产成人精品一区二三| 日产国产高清一区二区三区| 一区二区在线观看不卡| 久久久不卡网国产精品二区| 91精品免费观看| 91黄色在线观看| 99这里都是精品| 国产一区 二区| 久久99久久久欧美国产| 午夜激情综合网| 亚洲精品乱码久久久久久久久 | 欧美精品自拍偷拍动漫精品| 99久久国产综合精品女不卡| 国产美女在线观看一区| 美脚の诱脚舐め脚责91| 视频一区二区三区在线| 一区二区三区在线观看网站| 亚洲视频在线一区| 国产精品国产三级国产a| 久久综合九色综合97_久久久| 欧美一区二区在线观看| 欧美日韩国产综合草草| 欧美亚洲综合另类| 日本国产一区二区| 欧洲色大大久久| 色先锋资源久久综合| yourporn久久国产精品| 粉嫩av一区二区三区| 国产成人在线视频播放| 成人午夜在线免费| 国产精品888| 成人一区二区三区中文字幕| 国产一区二区三区香蕉 | 久久不见久久见免费视频7| 性做久久久久久免费观看| 亚洲二区在线视频| 亚洲成人资源在线| 久久国内精品视频| 精品亚洲成av人在线观看| 美女任你摸久久| 韩日av一区二区| 国产精品一卡二卡在线观看| 国产成人欧美日韩在线电影| 丁香六月久久综合狠狠色| 成人av资源在线观看| 99国产精品久久久| 精品视频全国免费看| 911精品产国品一二三产区| 欧美一区二区在线不卡| 精品人伦一区二区色婷婷| 久久精品水蜜桃av综合天堂| 亚洲国产精品精华液2区45| 亚洲欧美偷拍另类a∨色屁股| 一区二区三区 在线观看视频| 婷婷激情综合网| 国产综合成人久久大片91| 风间由美一区二区三区在线观看 | 99久久伊人网影院| 欧美性大战久久久| 日韩一区二区三区免费看| 久久九九全国免费| 亚洲天堂中文字幕| 日韩vs国产vs欧美| 国产成人综合亚洲91猫咪| 色老综合老女人久久久| 欧美高清视频不卡网| 国产夜色精品一区二区av| 一二三四社区欧美黄| 久久激情五月激情| 色综合久久66| 日韩欧美不卡一区| 成人欧美一区二区三区小说| 日本亚洲三级在线| av一区二区久久| 91麻豆精品国产自产在线 | 国产欧美精品国产国产专区| 亚洲激情自拍视频| 国产精品中文字幕一区二区三区| 91福利在线免费观看| 精品国偷自产国产一区| 亚洲久本草在线中文字幕| 激情综合色播激情啊| 在线观看成人免费视频| 国产亚洲一区二区三区| 视频一区免费在线观看| 99re这里只有精品首页| 欧美xfplay| 午夜欧美大尺度福利影院在线看 | 一道本成人在线| 精品奇米国产一区二区三区| 一区二区三区 在线观看视频| 国产盗摄女厕一区二区三区| 欧美一级生活片| 亚洲精品国产品国语在线app| 成人精品一区二区三区中文字幕| 欧美日韩国产天堂| 最新中文字幕一区二区三区| 久久99精品国产麻豆婷婷洗澡| 在线亚洲欧美专区二区| 国产精品美女久久久久久久久久久 | 韩国av一区二区三区四区 | 在线免费视频一区二区| 国产蜜臀av在线一区二区三区| 日韩精品五月天| 欧美伊人久久大香线蕉综合69| 亚洲国产精品成人综合 | 午夜精品久久久久久久久久 | 91福利区一区二区三区| 欧美国产一区视频在线观看| 久久激情综合网| 欧美一区二区三区啪啪| 亚洲精品亚洲人成人网在线播放| 成人污视频在线观看| 精品少妇一区二区三区视频免付费| 亚洲一区二区在线免费观看视频| 成人午夜私人影院| 久久久久久日产精品| 青青草伊人久久| 欧美视频自拍偷拍| 一区二区三区在线高清| 97超碰欧美中文字幕| 欧美极品另类videosde| 国产大陆亚洲精品国产| 久久一区二区三区国产精品| 久久狠狠亚洲综合| 精品va天堂亚洲国产| 久久精品免费观看| 精品国免费一区二区三区| 免费人成在线不卡| 欧美一区二区三区啪啪| 美腿丝袜一区二区三区| 日韩一区二区电影在线| 麻豆精品久久精品色综合| 欧美一区二区播放| 蜜臀av性久久久久蜜臀aⅴ流畅| 宅男在线国产精品| 美女在线观看视频一区二区| 日韩精品一区二| 精品一区中文字幕| 久久久综合精品| 福利一区福利二区| 综合久久久久久| 在线观看网站黄不卡| 视频一区免费在线观看| 欧美变态tickle挠乳网站| 成人污污视频在线观看| 最近日韩中文字幕| 欧美色电影在线| 奇米一区二区三区av| ww亚洲ww在线观看国产| 懂色一区二区三区免费观看| 欧美激情一区二区三区全黄| caoporn国产精品| 亚洲国产一区二区三区| 91精品国产综合久久香蕉的特点| 黄一区二区三区| 国产精品乱码久久久久久 | 日本一区二区三区视频视频| 99久久久精品| 日韩专区一卡二卡| 久久精品一区二区三区不卡 | 久久久久免费观看| www.欧美亚洲| 亚洲不卡av一区二区三区| 欧美va亚洲va| 成人av电影在线| 午夜激情一区二区| 久久精品一区二区三区四区| 色欲综合视频天天天| 免费观看在线综合| 国产精品国产精品国产专区不蜜| 日本高清不卡aⅴ免费网站| 久久精品国产77777蜜臀| 最新国产の精品合集bt伙计| 欧美日韩久久一区| 成人激情图片网| 亚洲第一会所有码转帖| 中文字幕高清不卡| 欧美一区二区三区在线观看| 成人美女在线观看| 青青草成人在线观看| 中文字幕电影一区| 日韩视频在线永久播放| 99精品在线免费| 精品一区二区免费视频| 亚洲一级二级三级| 国产日本欧美一区二区| 91精品国产品国语在线不卡| 99国内精品久久| 国产精品自拍三区| 日韩精品成人一区二区三区| 国产精品乱码一区二区三区软件|