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

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

?? util_clr.cpp

?? 比較詳盡的介紹了短信的發送與接收的實現模塊與程序
?? CPP
字號:

// util_clr.cpp

#include "stdafx.h"
#include "util_clr.h"
#include "util_mdc.h"
#include "util_gdi.h"




#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif


GColorComboBox::GColorComboBox()
{
   m_cl = RGB(0,0,0);
}

GColorComboBox::~GColorComboBox()
{
}



void GColorComboBox::SetColor(COLORREF clInit)
{
   m_cl = clInit;
}

COLORREF GColorComboBox::GetColor() const
{
   return m_cl;
}


void GColorComboBox::UpdateColor(COLORREF clUpdate)
{
   if(clUpdate != m_cl)
   {
      m_cl = clUpdate;
      Invalidate();
   
      int nChildID = GetDlgCtrlID();
      WPARAM wParam = MAKEWPARAM((WORD)nChildID, CCN_SELCHANGE);

      GetParent()->SendMessage(WM_COMMAND, wParam, (LPARAM)m_hWnd);
   }
}


BEGIN_MESSAGE_MAP(GColorComboBox, CWnd)
   ON_WM_LBUTTONDOWN()
   ON_WM_PAINT()
   ON_WM_ERASEBKGND()
END_MESSAGE_MAP()




BOOL GColorComboBox::Create(DWORD dwStyle, const RECT& rect,
                            CWnd *pParentWnd, UINT nID)
{
   return CWnd::Create(NULL, NULL, dwStyle, rect, pParentWnd, nID);
}




void GColorComboBox::OnLButtonDown(UINT nFlags, CPoint pt)
{
   CRect cr;
   GetClientRect(cr);
   cr.right -= CCBDIM_CXEDGE;
   cr.left = cr.right - CCBDIM_CXARROW -
             CCBDIM_CXBORDER - CCBDIM_CXSPACERIGHT;
   cr.top += CCBDIM_CYEDGE;
   cr.bottom -= CCBDIM_CYEDGE;

   if(cr.PtInRect(pt))
   {
      CRect wr;
      GetWindowRect(wr);

      WNDCLASS wndcls;
      memset(&wndcls, 0, sizeof(wndcls));

      wndcls.lpszClassName = "GPopupColorCtrl";
      wndcls.lpfnWndProc = AfxWndProc;
      wndcls.hInstance = AfxGetInstanceHandle();
      
      if(AfxRegisterClass(&wndcls))
      {
         GPopupColorCtrl *pPopup = new GPopupColorCtrl(m_cl, this);
         pPopup->CreateEx(0, wndcls.lpszClassName, NULL, WS_BORDER|WS_POPUP, 
                            wr.left, wr.bottom+2, 0, 0, AfxGetMainWnd()->m_hWnd, 0, NULL);
      }
   }
}

                       

void GColorComboBox::OnPaint()
{
   CPaintDC dc(this);
   
   GMemDC memDC;
   CBrush brush(GetSysColor(COLOR_BTNFACE));

   CRect cr;
   GetClientRect(cr);

   if(memDC.Create(&dc, cr, &brush))
   {
      CDC *pDC = &memDC;
      
      CRect rectDraw(cr);

      rectDraw.DeflateRect(1,1);
      CPen penBlack(PS_SOLID, 1, RGB(0,0,0));
      CPen penDarkGray(PS_SOLID, 1, GetSysColor(COLOR_BTNSHADOW));
      CPen penWhite(PS_SOLID, 1, RGB(255,255,255));
      CPen penGray(PS_SOLID, 1, GetSysColor(COLOR_BTNFACE));

      // draw the borders
      CPen *pOldPen = pDC->SelectObject(&penGray);

      pDC->MoveTo(rectDraw.left, rectDraw.top);
      pDC->LineTo(rectDraw.right, rectDraw.top);
      pDC->MoveTo(rectDraw.left, rectDraw.top);
      pDC->LineTo(rectDraw.left, rectDraw.bottom);

      pDC->SelectObject(&penWhite);

      rectDraw.DeflateRect(1, 1);
      pDC->MoveTo(rectDraw.left, rectDraw.top);
      pDC->LineTo(rectDraw.right, rectDraw.top);
      pDC->MoveTo(rectDraw.left, rectDraw.top);
      pDC->LineTo(rectDraw.left, rectDraw.bottom);

      pDC->SelectObject(&penBlack);

      rectDraw.InflateRect(1, 1);
      pDC->MoveTo(rectDraw.right, rectDraw.top);
      pDC->LineTo(rectDraw.right, rectDraw.bottom+1);
      pDC->MoveTo(rectDraw.left, rectDraw.bottom);
      pDC->LineTo(rectDraw.right, rectDraw.bottom);

      pDC->SelectObject(&penDarkGray);

      rectDraw.DeflateRect(1, 1);
      pDC->MoveTo(rectDraw.right, rectDraw.top);
      pDC->LineTo(rectDraw.right, rectDraw.bottom+1);
      pDC->MoveTo(rectDraw.left, rectDraw.bottom);
      pDC->LineTo(rectDraw.right, rectDraw.bottom);


      // draw arrow
      pDC->SelectObject(&penBlack);

      int nEnd = rectDraw.right - CCBDIM_CXEDGE - 
                 CCBDIM_CXBORDER;
      int nStart = nEnd - CCBDIM_CXARROW;
      int nMiddle = cr.top + (cr.Height()/2);

      pDC->MoveTo(nStart, nMiddle-1);
      pDC->LineTo(nEnd, nMiddle-1);

      nStart++;
      nEnd--;
      pDC->MoveTo(nStart, nMiddle);
      pDC->LineTo(nEnd, nMiddle);

      nStart++;
      nEnd--;
      pDC->MoveTo(nStart, nMiddle+1);
      pDC->LineTo(nEnd, nMiddle+1);

      // draw dividers
      nEnd = rectDraw.right - CCBDIM_CXEDGE - 
                 CCBDIM_CXBORDER - CCBDIM_CXARROW -
                 CCBDIM_CXSPACERIGHT - 1;

      pDC->SelectObject(&penWhite);

      int nTop = cr.top + CCBDIM_CYEDGE + CCBDIM_CYBORDER;
      int nBottom = (cr.bottom - CCBDIM_CYEDGE) - CCBDIM_CYBORDER;
      pDC->MoveTo(nEnd, nTop);
      pDC->LineTo(nEnd, nBottom);

      pDC->SelectObject(&penDarkGray);

      nEnd--;
      pDC->MoveTo(nEnd, nTop);
      pDC->LineTo(nEnd, nBottom);

      // draw color rectangle
      nEnd -= CCBDIM_CXSPACELEFT;

      CRect rectColor(cr);
      rectColor.DeflateRect(1,1);

      rectColor.right = nEnd;
      rectColor.left += cr.left + CCBDIM_CXEDGE + CCBDIM_CXBORDER;
      rectColor.top = nTop;
      rectColor.bottom = nBottom;

      pDC->SelectObject(&penBlack);

      CBrush brush(m_cl);
      CBrush *pOldBrush = pDC->SelectObject(&brush);

      pDC->Rectangle(rectColor);
  
      pDC->SelectObject(pOldPen);
      pDC->SelectObject(pOldBrush);

      memDC.Copy(&dc, cr);
      memDC.Release();
   }
}


BOOL GColorComboBox::OnEraseBkgnd(CDC *pDC)
{
   return TRUE;
}





///////////////////////////////////////////////////
// GPopupColorCtrl

COLORREF g_clArray[] = {RGB(0,0,255), RGB(0,255,0), 
                        RGB(0,255,255), RGB(255,0,0), 
                        RGB(255,0,255), RGB(255,255,0), 
                        RGB(255,255,255), RGB(0,0,0), 
                        RGB(0,0,127), RGB(0,127,0), 
                        RGB(0,127,127), RGB(127,0,0), 
                        RGB(127,0,127), RGB(127,127,0), 
                        RGB(127,127,127), RGB(63,63,63)}; 



GPopupColorCtrl::GPopupColorCtrl(COLORREF clInit,
                                 GColorComboBox *pBuddyCombo)
{
   m_pBuddyCombo = pBuddyCombo;
   m_nActiveSquare = 0;                           
   m_nCurHoverSquare = 0;

   for(int nColor = 0; nColor < CCDIM_TOTALINDECES; nColor++)
   {
      if(g_clArray[nColor] == clInit)
      {
         m_nActiveSquare = nColor;
         m_nCurHoverSquare = nColor;
         break;
      }
   }

   m_clSelected = g_clArray[m_nActiveSquare];
}


GPopupColorCtrl::~GPopupColorCtrl()
{

}


int GPopupColorCtrl::CursorToColorIndex(CPoint ptTest)
{
   CPoint pt(CCDIM_CXSPACE, CCDIM_CYSPACE);
   int nIndex = 0;

   for(int nRow = 0; nRow < 4; nRow++)
   {
      for(int nCol = 0; nCol < 4; nCol++)
      {
         CRect rectSquare(pt, CSize(CCDIM_SQUAREWIDTH, CCDIM_SQUAREHEIGHT));

         if(rectSquare.PtInRect(ptTest))
            return nIndex;

         pt.x += (CCDIM_SQUAREWIDTH + CCDIM_CXSPACE);
         nIndex++;
      }

      pt.x = CCDIM_CXSPACE;
      pt.y += (CCDIM_SQUAREHEIGHT + CCDIM_CYSPACE);
   }

   return -1;
}


void GPopupColorCtrl::DrawColorSquare(CDC *pDC, int nIndex, CPoint pt)
{
   CRect rectDraw(pt, CSize(CCDIM_SQUAREWIDTH, CCDIM_SQUAREHEIGHT));
   
   _3DPENS pens;

   int nThickness = GfxDraw3DBorder(pDC, &pens, rectDraw);

   rectDraw.DeflateRect(nThickness, nThickness);
   CBrush brush(g_clArray[nIndex]);
   pDC->FillRect(rectDraw, &brush);

   if(nIndex == m_nCurHoverSquare)
   {
      rectDraw.InflateRect(1, 1);
      GfxDrawBorder(pDC, rectDraw, pens.pPenWhite);

      rectDraw.DeflateRect(1,1);
      GfxDrawBorder(pDC, rectDraw, pens.pPenBlack);
   }
}



BEGIN_MESSAGE_MAP(GPopupColorCtrl, GPopupWindow)
   ON_WM_CREATE()
   ON_WM_MOUSEMOVE()
   ON_WM_LBUTTONUP()
   ON_WM_PAINT()
   ON_WM_ERASEBKGND()
END_MESSAGE_MAP()



int GPopupColorCtrl::OnCreate(LPCREATESTRUCT lpcs)
{
   int nCreate = GPopupWindow::OnCreate(lpcs);

   if(nCreate == 0)
   {
      int cx = CCDIM_CXSPACE * 5;
      cx += GetSystemMetrics(SM_CXBORDER) * 2;
      cx += (CCDIM_SQUAREWIDTH * 4);

      int cy = CCDIM_CYSPACE * 5;
      cy += GetSystemMetrics(SM_CYBORDER) * 2;
      cy += (CCDIM_SQUAREHEIGHT * 4);

      SetWindowPos(&wndTopMost, 0, 0, cx, cy, 
             SWP_NOMOVE|SWP_NOZORDER|SWP_SHOWWINDOW|SWP_NOACTIVATE);
   }

   return nCreate;
}


void GPopupColorCtrl::OnPaint()
{
   CPaintDC dc(this);
   
   GMemDC memDC;
   CBrush brush(GetSysColor(COLOR_BTNFACE));

   CRect cr;
   GetClientRect(cr);

   if(memDC.Create(&dc, cr, &brush))
   {
      CPoint pt(CCDIM_CXSPACE, CCDIM_CYSPACE);
      int nIndex = 0;

      for(int nRow = 0; nRow < 4; nRow++)
      {
         for(int nCol = 0; nCol < 4; nCol++)
         {
            DrawColorSquare(&memDC, nIndex, pt);
            pt.x += (CCDIM_SQUAREWIDTH + CCDIM_CXSPACE);
            nIndex++;
         }

         pt.x = CCDIM_CXSPACE;
         pt.y += (CCDIM_SQUAREHEIGHT + CCDIM_CYSPACE);
      }

      memDC.Copy(&dc, cr);
      memDC.Release();
   }
}


BOOL GPopupColorCtrl::OnEraseBkgnd(CDC *pDC)
{
   return TRUE;
}


void GPopupColorCtrl::OnMouseMove(UINT nFlags, CPoint pt)
{
   int nIndex = CursorToColorIndex(pt);

   if(nIndex != -1 && nIndex != m_nCurHoverSquare)
   {
      m_nCurHoverSquare = nIndex;
      Invalidate();
   }
}


void GPopupColorCtrl::OnLButtonUp(UINT nFlags, CPoint pt)
{
   if(!OnLButtonDownCheck(nFlags, pt))
   {
      int nIndex = CursorToColorIndex(pt);
      // find out what color mouse is over
      if(nIndex != -1)
      {
         if(m_pBuddyCombo)
            m_pBuddyCombo->UpdateColor(g_clArray[nIndex]); 

         m_nActiveSquare = nIndex;
         ::ReleaseCapture();
      }
   }
}



?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
欧美日韩第一区日日骚| 一本色道a无线码一区v| 偷拍与自拍一区| 亚洲自拍偷拍九九九| 中文字幕一区二区三区精华液 | 日韩精品一区二区三区在线观看| 日本电影亚洲天堂一区| www.66久久| 91丝袜美女网| 欧洲激情一区二区| 欧美日韩精品二区第二页| 欧美日产在线观看| 欧美变态tickling挠脚心| 26uuu精品一区二区三区四区在线| 日韩三级电影网址| 国产午夜亚洲精品理论片色戒 | 国产成人综合在线| av电影在线观看不卡| 色哟哟在线观看一区二区三区| 在线免费亚洲电影| 88在线观看91蜜桃国自产| 欧美成人精品1314www| 久久久久久久久伊人| 综合婷婷亚洲小说| 天天综合色天天| 国产成人在线影院| 色av成人天堂桃色av| 91精品国产综合久久福利| 日韩欧美一级片| 亚洲另类在线制服丝袜| 亚洲va天堂va国产va久| 久久超碰97中文字幕| 国产精品夜夜嗨| 欧美日韩在线播放三区四区| 欧美一区二区三区四区在线观看| 精品少妇一区二区三区在线播放 | 成人一级片网址| 在线精品视频一区二区三四| 91精品在线免费观看| 中文字幕国产一区| 丝袜亚洲精品中文字幕一区| 粗大黑人巨茎大战欧美成人| 欧美日韩一区不卡| 国产欧美1区2区3区| 香蕉影视欧美成人| 国产91精品久久久久久久网曝门 | 奇米综合一区二区三区精品视频| 国产精选一区二区三区| 91福利在线观看| 日韩一级完整毛片| 亚洲视频电影在线| 激情偷乱视频一区二区三区| 欧美色精品天天在线观看视频| 久久久久久久久99精品| 首页国产欧美日韩丝袜| 成人av网站免费观看| 欧美不卡一二三| 午夜成人免费视频| 色欧美日韩亚洲| 国产精品美女久久久久aⅴ国产馆 国产精品美女久久久久av爽李琼 国产精品美女久久久久高潮 | 一区二区三区在线视频观看| 男人的天堂亚洲一区| 在线欧美一区二区| 亚洲视频一区二区免费在线观看| 另类成人小视频在线| 欧美日韩国产a| 亚洲最新在线观看| 91丨九色丨蝌蚪丨老版| 中文字幕一区二区三区在线播放| 黄色小说综合网站| 精品国产在天天线2019| 奇米色一区二区| 91精品国模一区二区三区| 婷婷丁香久久五月婷婷| 欧美亚洲丝袜传媒另类| 一二三四社区欧美黄| 欧洲在线/亚洲| 一区2区3区在线看| 欧美私人免费视频| 亚洲午夜在线视频| 欧美精品成人一区二区三区四区| 亚洲不卡av一区二区三区| 欧美在线不卡一区| 亚洲成av人在线观看| 欧美人与性动xxxx| 日韩二区三区四区| 亚洲精品一区二区精华| 激情综合色丁香一区二区| 精品国产伦一区二区三区免费| 九九**精品视频免费播放| 久久久久久久久99精品| 成人爽a毛片一区二区免费| 中文字幕日韩一区二区| 在线日韩av片| 美女视频黄a大片欧美| 久久天天做天天爱综合色| 大胆欧美人体老妇| 夜夜夜精品看看| 日韩一区二区三区高清免费看看 | 国产一区二区福利| 国产精品久久久久久户外露出| 99re热这里只有精品视频| 一区二区三区精品在线| 91精品国产入口| 成人一级黄色片| 亚洲成人综合视频| 国产一区二区免费看| 国产剧情一区在线| 国产精品香蕉一区二区三区| av在线这里只有精品| 欧美一区二区三区在线电影| 国产无一区二区| 午夜精品一区二区三区免费视频| 男女男精品视频| eeuss鲁片一区二区三区在线看| 高清av一区二区| 狠狠色狠狠色合久久伊人| 欧美一级午夜免费电影| 1区2区3区精品视频| 7777精品伊人久久久大香线蕉完整版 | 视频一区中文字幕国产| 国产视频一区在线观看| 欧美日韩国产一二三| 国产高清无密码一区二区三区| 亚洲国产成人av网| 中文字幕不卡在线观看| 日韩一区二区免费在线观看| 99久久国产免费看| 国产福利视频一区二区三区| 婷婷久久综合九色综合绿巨人 | 亚洲国产精品久久一线不卡| 久久久久久97三级| 91精品福利在线一区二区三区 | 欧美日韩一区二区在线观看| 国产suv一区二区三区88区| 亚洲成a人片在线不卡一二三区| 国产日韩欧美精品一区| 欧美大片一区二区三区| 欧美日韩一区二区在线视频| 91一区二区三区在线播放| 国产电影精品久久禁18| 久久99精品一区二区三区| 日本中文在线一区| 亚洲一卡二卡三卡四卡五卡| 国产精品久久久久久久久果冻传媒| 精品成人私密视频| 精品免费国产一区二区三区四区| 欧美日韩一区二区三区四区| 91极品美女在线| 色婷婷激情久久| 日本久久一区二区三区| 欧亚洲嫩模精品一区三区| av在线综合网| 91麻豆精品一区二区三区| 成人app网站| 91亚洲精品久久久蜜桃网站| 99久久精品免费看国产| 91女人视频在线观看| 91在线视频观看| 91精品办公室少妇高潮对白| 欧美性生交片4| 欧美妇女性影城| 日韩欧美黄色影院| xf在线a精品一区二区视频网站| 欧美sm极限捆绑bd| 久久精品亚洲乱码伦伦中文| 欧美国产激情一区二区三区蜜月| 久久亚区不卡日本| 国产亚洲欧美中文| 成人欧美一区二区三区小说| 一区二区三区欧美激情| 亚洲成人一二三| 美女国产一区二区三区| 国产精品一区二区黑丝| www.成人网.com| 欧美喷潮久久久xxxxx| 欧美电影免费观看高清完整版在线| 欧美不卡一区二区三区| 国产精品色在线| 午夜伦欧美伦电影理论片| 麻豆久久久久久| 99在线精品观看| 51午夜精品国产| 欧美国产乱子伦| 亚洲成人av中文| 国产毛片精品一区| 色噜噜狠狠成人中文综合| 日韩一区二区精品| 国产精品丝袜一区| 日韩激情一区二区| 粉嫩aⅴ一区二区三区四区五区| 91久久精品国产91性色tv| 精品国产免费一区二区三区四区 | 亚洲伊人伊色伊影伊综合网 | 久久综合狠狠综合久久综合88| 亚洲丝袜自拍清纯另类| 麻豆91在线播放免费| 91免费看视频| 久久久久久久精| 日本亚洲最大的色成网站www|