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

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

?? scrollerctrl.cpp

?? 讀取USB控制器 及每個(gè)端口信息
?? CPP
?? 第 1 頁 / 共 2 頁
字號(hào):
      if ( m_pbmpPattern->GetBitmap(&bitmap) && bitmap.bmWidth > 0 && bitmap.bmHeight > 0 )
      {
         if ( m_bTilePattern )
         {
            for (int y=0; y<rectClient.bottom+bitmap.bmHeight; y += bitmap.bmHeight)
            {
               for (int x=0; x<rectClient.right+bitmap.bmWidth; x += bitmap.bmWidth)
               {
                  pDC->BitBlt(x,y, bitmap.bmWidth, bitmap.bmHeight, &dcPat, 0,0, SRCCOPY);
               }
            }
         }
         else
         {
      	   pDC->FillSolidRect(rectClient, m_crBackground);
            pDC->BitBlt((m_sizeBuffer.cx-bitmap.bmWidth)/2,(m_sizeBuffer.cy-bitmap.bmHeight)/2, bitmap.bmWidth, bitmap.bmHeight, &dcPat, 0,0, SRCCOPY);
         }
      }
      dcPat.SelectObject(pbmpOld);
   }
}

// Draws the logo (if specified) at the given offset.
// If bDraw is false, calculates height, but does not draw.
// Returns height of logo.
int CScrollerCtrl::DrawLogo(CDC* pDC, int nOffset, BOOL bDraw)
{
   if ( NULL == m_pbmpLogo )
      return 0;

   BITMAP bitmap;
   memset(&bitmap,0,sizeof(bitmap));
   if ( m_pbmpLogo->GetBitmap(&bitmap) && bDraw && bitmap.bmWidth > 0 && bitmap.bmHeight > 0 )
   {
      CDC dcLogo;
      dcLogo.CreateCompatibleDC(pDC);
      CBitmap* pbmpOld = dcLogo.SelectObject(m_pbmpLogo);
      pDC->BitBlt((m_sizeBuffer.cx-bitmap.bmWidth)/2,nOffset, bitmap.bmWidth, bitmap.bmHeight, &dcLogo, 0,0, SRCCOPY);
      dcLogo.SelectObject(pbmpOld);
   }
   return bitmap.bmHeight;
}

// Draws the text at the specified offset.
// If bDraw is false, will calculate text height, but not draw.
// Returns height of text.
int CScrollerCtrl::DrawBodyText(CDC* pDC, int nOffset, BOOL bDraw)
{
	CRect rect(nMARGIN,nOffset,m_sizeBuffer.cx-nMARGIN,m_sizeBuffer.cy);
	UINT uFlags = bDraw ? DT_EXPANDTABS|DT_NOPREFIX|DT_WORDBREAK : DT_EXPANDTABS|DT_NOCLIP|DT_CALCRECT|DT_NOPREFIX|DT_WORDBREAK;

   CFont* pOldFont = pDC->SelectObject(&m_font);
   pDC->SetBkMode(TRANSPARENT);
   // draw shadow if displayed over pattern
   if ( bDraw && NULL != m_pbmpPattern )
   {
      // offset 1/10 of font size
      LOGFONT logFont;
      m_font.GetLogFont(&logFont);
      int nShadowOffset = MulDiv(-logFont.lfHeight, 72, pDC->GetDeviceCaps(LOGPIXELSY)*10);
      // get color between forground and background for shadow (not correct i'm sure)      int red = (GetRValue(m_crForeground) + GetRValue(m_crBackground)*2)/3;      int green = (GetGValue(m_crForeground) + GetGValue(m_crBackground)*2)/3;      int blue = (GetBValue(m_crForeground) + GetBValue(m_crBackground)*2)/3;      COLORREF crDarker = RGB(red, green, blue);

      pDC->SetTextColor(crDarker);
      rect.OffsetRect(nShadowOffset,nShadowOffset);
      pDC->DrawText(m_strText, &rect, uFlags);
      rect.OffsetRect(-nShadowOffset,-nShadowOffset);
   }
   if(m_eState == PAUSED)
   pDC->SetTextColor(m_crForeground);
   else
   {
	   pDC->SetTextColor(RGB((int)160,0,0));
   }
	int nHeight = pDC->DrawText(m_strText, &rect, uFlags);
   pDC->SelectObject(pOldFont);
	return nHeight;
}

// indicate that this control will process arrow keystrokes.
UINT CScrollerCtrl::OnGetDlgCode()
{
   if ( GetStyle()&WS_TABSTOP )
      return DLGC_WANTARROWS;
   return 0;
}

// Grab focus if required.
void CScrollerCtrl::OnLButtonDown(UINT nFlags, CPoint point)
{
   if ( GetStyle()&WS_TABSTOP )
      SetFocus();
}

// Handle keyboard scrolling.
void CScrollerCtrl::OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags)
{
   switch ( nChar )
   {
   case VK_UP:
      PostMessage(WM_VSCROLL, SB_LINEUP);
      break;
   case VK_DOWN:
      PostMessage(WM_VSCROLL, SB_LINEDOWN);
      break;
   case VK_PRIOR:    // why not VK_PAGEUP?
      PostMessage(WM_VSCROLL, SB_PAGEUP);
      break;
   case VK_NEXT:     // why not VK_PAGEDOWN?
      PostMessage(WM_VSCROLL, SB_PAGEDOWN);
      break;
   }
}

// Handle scrolling.
// This can be triggered by mouse wheel and keyboard, 
// as well as the scrollbar.
void CScrollerCtrl::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
   if ( !(GetStyle()&WS_TABSTOP) )
      return;

   // delay autoscroll after manual scroll
   if ( m_nScrollPause > m_nScrollDelay )
   {
      m_eState = PAUSED;
      m_unTimerPause = SetTimer(m_unTimerPause, m_nScrollPause, NULL);
   }

   switch (nSBCode)
   {
   case SB_BOTTOM:      // Scroll to bottom. 
      m_nScrollOffset = m_sizeBuffer.cy-m_nContentHeight;
      break;
   case SB_TOP:         // Scroll to top. 
      m_nScrollOffset = 0;
      break;
   case SB_LINEDOWN:    // Scroll one line down. 
      m_nScrollOffset -= 8;
      break;
   case SB_LINEUP:      // Scroll one line up. 
      m_nScrollOffset += 8;
      break;
   case SB_PAGEDOWN:    // Scroll one page down. 
      m_nScrollOffset -= m_sizeBuffer.cy;
      break;
   case SB_PAGEUP:      // Scroll one page up. 
      m_nScrollOffset += m_sizeBuffer.cy;
      break;
   case SB_THUMBPOSITION:
   case SB_THUMBTRACK:
      m_nScrollOffset = -((int)nPos);
      break;
   default:
      return;
   }

   // constrain
	if ( m_nScrollOffset < m_sizeBuffer.cy-m_nContentHeight )
		m_nScrollOffset = m_sizeBuffer.cy-m_nContentHeight;
   else if ( m_nScrollOffset > 0 )
      m_nScrollOffset = 0;

   // scroll
   SetScrollPos(SB_VERT, -m_nScrollOffset);
   Invalidate(FALSE);
}

// Handle mouse wheel scrolling.
// I'll put actual effort into handling non-WHEEL_DELTA increments
// when i actually get a mouse that sends them. ;~)
BOOL CScrollerCtrl::OnMouseWheel(UINT nFlags, short zDelta, CPoint pt)
{
   int nDist = abs(zDelta)/WHEEL_DELTA+1;

   while ( nDist-- )
   {
      PostMessage(WM_VSCROLL, zDelta > 0 ? SB_LINEUP : SB_LINEDOWN);
   }
   return TRUE;
}

// Timers are used for three purposes:
//    + Periodic checking to show/hide the scrollbar
//    + Automatic scrolling (when m_eState == SCROLLING)
//    + Ending automatic scrolling pauses (when m_eState == PAUSED)
// This is accomplished via two timers:
//    The first does double duty, handling both the scrollbar and
//    automatic scrolling; it is active for the life of the window.
//    The second is used for ending autoscroll pauses.
void CScrollerCtrl::OnTimer(UINT nIDEvent)
{
   // don't autoscroll or hide scrollbar when user is dragging the scroll button.
   if ( this == GetCapture() )
      return;

   // the scrollbar can be shown if the following are true:
   //    + The content size is larger than the window
   //    + The mouse cursor is over the window
   //    + The top-level parent containing this control is active
   if ( m_bShowScroll )
   {
	   CRect rectWindow;
	   GetWindowRect(&rectWindow);
      CPoint pntCursor;
      ::GetCursorPos(&pntCursor);
      if ( m_sizeBuffer.cy < m_nContentHeight && GetTopLevelParent() == GetActiveWindow() && rectWindow.PtInRect(pntCursor) )
      {
         SetScrollRange(SB_VERT, 0, m_nContentHeight-m_sizeBuffer.cy, FALSE);
         SetScrollPos(SB_VERT, -m_nScrollOffset, TRUE);
         ShowScrollBar(SB_VERT, TRUE);
      }
      else if ( this != GetCapture() )
      {
         ShowScrollBar(SB_VERT, FALSE);
      }
   }

   if ( nIDEvent == m_unTimerPause )
   {
      m_eState = SCROLLING;
      KillTimer(m_unTimerPause);
   }

   if ( m_eState == SCROLLING )
   {
	   --m_nScrollOffset;
	   if ( m_nContentHeight+m_nScrollOffset < 0 )
      {
         // scrolling is complete; restart
         m_nScrollOffset = m_bWrap ? 0 : m_sizeBuffer.cy;
         CWnd* pwndParent = GetParent();
         if ( NULL != pwndParent )
            pwndParent->SendMessage(WM_COMMAND, MAKELPARAM(GetDlgCtrlID(), SC_SCROLL_COMPLETE), (LPARAM)GetSafeHwnd());
      }

      // pause at top and bottom
      if ( 0 == m_nScrollOffset || (m_nScrollOffset+m_nContentHeight == m_sizeBuffer.cy && m_sizeBuffer.cy < m_nContentHeight) )
      {
         if ( m_nScrollPause > m_nScrollDelay )
         {
            m_eState = PAUSED;
            m_unTimerPause = SetTimer(m_unTimerPause, m_nScrollPause, NULL);
         }
      }
	   Invalidate(FALSE);
   }
}

?? 快捷鍵說明

復(fù)制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號(hào) Ctrl + =
減小字號(hào) Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美美女激情18p| 中文字幕日本不卡| 岛国精品一区二区| 亚洲欧美怡红院| 欧美在线视频日韩| 日韩福利电影在线观看| 精品福利在线导航| 成人性生交大片| 一区二区三区在线高清| 777a∨成人精品桃花网| 看电影不卡的网站| 国产精品乱码久久久久久| 99久久久久免费精品国产| 亚洲国产一区二区在线播放| 日韩一区二区三区av| 国产精品中文字幕日韩精品 | 中文字幕中文乱码欧美一区二区| 成人高清在线视频| 亚洲亚洲人成综合网络| 91精品欧美福利在线观看| 偷拍日韩校园综合在线| 7777精品伊人久久久大香线蕉 | 樱花影视一区二区| 日韩一级免费观看| 成人性生交大合| 亚洲第一福利一区| 久久久久99精品一区| 91视视频在线直接观看在线看网页在线看| 亚洲综合色自拍一区| 精品国偷自产国产一区| 99久久精品免费精品国产| 日本亚洲电影天堂| 日韩一区在线免费观看| 日韩一级片在线播放| 99免费精品视频| 免费成人在线观看| 专区另类欧美日韩| 精品久久久影院| 欧美伊人久久大香线蕉综合69| 国内精品写真在线观看 | 国产天堂亚洲国产碰碰| 91九色02白丝porn| 国产伦精品一区二区三区视频青涩 | 欧美日韩www| 成人三级在线视频| 三级欧美韩日大片在线看| 国产精品久久久久三级| 欧美精品精品一区| 91在线porny国产在线看| 久久国产欧美日韩精品| 一区二区激情小说| 国产欧美日韩视频在线观看| 777午夜精品视频在线播放| 99久久久国产精品免费蜜臀| 紧缚捆绑精品一区二区| 亚洲va欧美va国产va天堂影院| 中文字幕巨乱亚洲| 日韩免费福利电影在线观看| 色8久久精品久久久久久蜜| 国产成人99久久亚洲综合精品| 日韩av一区二| 亚洲国产精品影院| 中文字幕一区二区三区精华液| 精品对白一区国产伦| 欧美日韩国产一级二级| 色综合天天综合在线视频| 国产精品99久久久久久似苏梦涵| 婷婷成人综合网| 亚洲资源在线观看| 自拍av一区二区三区| 国产欧美视频一区二区三区| 日韩视频中午一区| 欧美日韩日日骚| 91久久国产综合久久| 99国产精品久| 成人美女视频在线看| 国产综合色在线视频区| 日韩国产高清在线| 亚洲国产成人av好男人在线观看| 国产精品成人一区二区艾草| 国产欧美一区二区精品仙草咪| 精品国产91洋老外米糕| 日韩一区二区精品葵司在线 | 69堂亚洲精品首页| 欧美综合一区二区| 91色综合久久久久婷婷| 波多野结衣亚洲一区| 丁香六月综合激情| 国产91高潮流白浆在线麻豆| 国产精品一区一区三区| 精品一区二区综合| 免费成人小视频| 另类综合日韩欧美亚洲| 日本欧美在线看| 免费一级片91| 另类欧美日韩国产在线| 老司机精品视频在线| 另类人妖一区二区av| 久久成人av少妇免费| 久久精品国产亚洲高清剧情介绍| 免费视频最近日韩| 人人爽香蕉精品| 美女视频黄免费的久久| 蜜臀a∨国产成人精品| 蜜臀av性久久久久蜜臀aⅴ流畅 | 亚洲成人av一区二区三区| 一区二区三区四区不卡视频| 亚洲少妇中出一区| 一区二区国产盗摄色噜噜| 亚洲自拍偷拍图区| 午夜欧美在线一二页| 日本欧美在线观看| 精品在线播放免费| 国产精品一区二区在线观看不卡 | 欧美性猛交xxxxxxxx| 欧美特级限制片免费在线观看| 欧美日韩国产精品成人| 91精品欧美一区二区三区综合在| 欧美一区二区免费观在线| 精品精品国产高清a毛片牛牛 | 国产69精品一区二区亚洲孕妇| 成人精品视频.| 色国产综合视频| 欧美片网站yy| 精品国产精品网麻豆系列| 日本一区二区三区dvd视频在线| 国产精品久久久久久久午夜片 | 亚洲高清免费一级二级三级| 日韩电影一区二区三区四区| 麻豆成人91精品二区三区| 国产最新精品免费| 波多野结衣欧美| 欧美视频一区在线观看| 日韩一区二区三区视频在线观看| 亚洲精品一区二区三区99| 欧美经典一区二区| 悠悠色在线精品| 毛片av中文字幕一区二区| 国产不卡在线视频| 在线精品视频免费播放| 欧美一区二区三区日韩| 欧美经典三级视频一区二区三区| 亚洲男同性视频| 免费的成人av| 高清不卡在线观看av| 在线视频国内一区二区| 日韩视频免费观看高清在线视频| 国产日韩欧美综合在线| 一区二区三区资源| 久久精品999| 97久久超碰国产精品电影| 欧美丰满高潮xxxx喷水动漫| 国产午夜精品久久久久久免费视| 一区二区三区在线高清| 久久99久久久久| 91网站在线播放| 欧美一激情一区二区三区| 国产精品福利一区| 人人爽香蕉精品| 97精品久久久久中文字幕| 91精品国产综合久久小美女| 国产精品每日更新| 奇米四色…亚洲| 91亚洲永久精品| 日韩色在线观看| 亚洲伦在线观看| 久久99久久99| 在线视频国产一区| 久久精品视频一区二区三区| 亚洲永久免费视频| 国产成人在线看| 91精品国产品国语在线不卡| 国产精品私房写真福利视频| 日韩—二三区免费观看av| 成a人片亚洲日本久久| 日韩视频一区二区三区在线播放 | 欧美日韩精品久久久| 久久麻豆一区二区| 午夜影院在线观看欧美| 成人一区在线观看| 日韩欧美一区电影| 樱花影视一区二区| 粉嫩久久99精品久久久久久夜| 在线不卡一区二区| 亚洲视频在线一区二区| 国精产品一区一区三区mba视频| 欧美日韩亚洲高清一区二区| 国产精品全国免费观看高清| 久久精品免费观看| 欧美日韩精品二区第二页| 国产精品白丝在线| 国产在线看一区| 91精品久久久久久久99蜜桃| 亚洲精品日韩专区silk| 成人污污视频在线观看| 26uuu精品一区二区在线观看| 99久久精品国产毛片| 国产亚洲成av人在线观看导航| 奇米影视在线99精品| 欧美日韩国产成人在线免费|