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

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

?? colourpicker.cpp

?? 界面開發
?? CPP
字號:
// ColourPicker.cpp : implementation file
//
// ColourPicker is a drop-in colour picker control. Check out the 
// header file or the accompanying HTML doc file for details.
//
// Written by Chris Maunder (chrismaunder@codeguru.com)
// Extended by Alexander Bischofberger (bischofb@informatik.tu-muenchen.de)
// Copyright (c) 1998.
//
// This code may be used in compiled form in any way you desire. This
// file may be redistributed unmodified by any means PROVIDING it is 
// not sold for profit without the authors written consent, and 
// providing that this notice and the authors name is included. If 
// the source code in  this file is used in any commercial application 
// then a simple email would be nice.
//
// This file is provided "as is" with no expressed or implied warranty.
// The author accepts no liability if it causes any damage to your
// computer, causes your pet cat to fall ill, increases baldness or
// makes you car start emitting strange noises when you start it up.
//
// Expect bugs.
// 
// Please use and enjoy. Please let me know of any bugs/mods/improvements 
// that you have found/implemented and I will fix/incorporate them into this
// file. 
//
// Updated 16 May 1998
//         31 May 1998 - added Default text (CJM)
//          9 Jan 1999 - minor vis update

#include "stdafx.h"
#include "ColourPopup.h"
#include "ColourPicker.h"

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

void AFXAPI DDX_ColourPicker(CDataExchange *pDX, int nIDC, COLORREF& crColour)
{
    HWND hWndCtrl = pDX->PrepareCtrl(nIDC);
    ASSERT (hWndCtrl != NULL);                
    
    CColourPicker* pColourPicker = (CColourPicker*) CWnd::FromHandle(hWndCtrl);
    if (pDX->m_bSaveAndValidate)
    {
        crColour = pColourPicker->GetColour();
    }
    else // initializing
    {
        pColourPicker->SetColour(crColour);
    }
}

/////////////////////////////////////////////////////////////////////////////
// CColourPicker

CColourPicker::CColourPicker()
{
    SetBkColour(GetSysColor(COLOR_3DFACE));
    SetTextColour(GetSysColor(COLOR_BTNTEXT));

    m_bTrackSelection = FALSE;
    m_nSelectionMode = CP_MODE_BK;
    m_bActive = FALSE;

    m_strDefaultText = _T("Automatic");
    m_strCustomText  = _T("More Colours...");
}

CColourPicker::~CColourPicker()
{
}

IMPLEMENT_DYNCREATE(CColourPicker, CButton)

BEGIN_MESSAGE_MAP(CColourPicker, CButton)
    //{{AFX_MSG_MAP(CColourPicker)
    ON_CONTROL_REFLECT_EX(BN_CLICKED, OnClicked)
    ON_WM_CREATE()
    //}}AFX_MSG_MAP
    ON_MESSAGE(CPN_SELENDOK,     OnSelEndOK)
    ON_MESSAGE(CPN_SELENDCANCEL, OnSelEndCancel)
    ON_MESSAGE(CPN_SELCHANGE,    OnSelChange)
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// CColourPicker message handlers

LONG CColourPicker::OnSelEndOK(UINT lParam, LONG /*wParam*/)
{
    COLORREF crNewColour = (COLORREF) lParam;
    m_bActive = FALSE;
    SetColour(crNewColour);

    CWnd *pParent = GetParent();
    if (pParent) {
        pParent->SendMessage(CPN_CLOSEUP, lParam, (WPARAM) GetDlgCtrlID());
        pParent->SendMessage(CPN_SELENDOK, lParam, (WPARAM) GetDlgCtrlID());
    }

    if (crNewColour != GetColour())
        if (pParent) pParent->SendMessage(CPN_SELCHANGE, lParam, (WPARAM) GetDlgCtrlID());

    return TRUE;
}

LONG CColourPicker::OnSelEndCancel(UINT lParam, LONG /*wParam*/)
{
    m_bActive = FALSE;
    SetColour((COLORREF) lParam);

    CWnd *pParent = GetParent();
    if (pParent) {
        pParent->SendMessage(CPN_CLOSEUP, lParam, (WPARAM) GetDlgCtrlID());
        pParent->SendMessage(CPN_SELENDCANCEL, lParam, (WPARAM) GetDlgCtrlID());
    }

    return TRUE;
}

LONG CColourPicker::OnSelChange(UINT lParam, LONG /*wParam*/)
{
    if (m_bTrackSelection) SetColour((COLORREF) lParam);

    CWnd *pParent = GetParent();
    if (pParent) pParent->SendMessage(CPN_SELCHANGE, lParam, (WPARAM) GetDlgCtrlID());

    return TRUE;
}

int CColourPicker::OnCreate(LPCREATESTRUCT lpCreateStruct) 
{
    if (CButton::OnCreate(lpCreateStruct) == -1)
        return -1;
    
    SetWindowSize();    // resize appropriately
    return 0;
}

// On mouse click, create and show a CColourPopup window for colour selection
BOOL CColourPicker::OnClicked()
{
    m_bActive = TRUE;
    CRect rect;
    GetWindowRect(rect);
    new CColourPopup(CPoint(rect.left, rect.bottom),    // Point to display popup
                     GetColour(),                       // Selected colour
                     this,                              // parent
                     m_strDefaultText,                  // "Default" text area
                     m_strCustomText);                  // Custom Text

    CWnd *pParent = GetParent();
    if (pParent)
        pParent->SendMessage(CPN_DROPDOWN, (LPARAM)GetColour(), (WPARAM) GetDlgCtrlID());

    // Docs say I should return FALSE to stop the parent also getting the message.
    // HA! What a joke.

    return TRUE;
}

void CColourPicker::DrawItem(LPDRAWITEMSTRUCT lpDrawItemStruct) 
{
    ASSERT(lpDrawItemStruct);
    
    CDC*    pDC     = CDC::FromHandle(lpDrawItemStruct->hDC);
    CRect   rect    = lpDrawItemStruct->rcItem;
    UINT    state   = lpDrawItemStruct->itemState;
    CString m_strText;

    CSize Margins(::GetSystemMetrics(SM_CXEDGE), ::GetSystemMetrics(SM_CYEDGE));

    // Draw arrow
    if (m_bActive) state |= ODS_SELECTED;
    pDC->DrawFrameControl(&m_ArrowRect, DFC_SCROLL, DFCS_SCROLLDOWN  | 
                          ((state & ODS_SELECTED) ? DFCS_PUSHED : 0) |
                          ((state & ODS_DISABLED) ? DFCS_INACTIVE : 0));

    pDC->DrawEdge(rect, EDGE_SUNKEN, BF_RECT);

    // Must reduce the size of the "client" area of the button due to edge thickness.
    rect.DeflateRect(Margins.cx, Margins.cy);

    // Fill remaining area with colour
    rect.right -= m_ArrowRect.Width();

    CBrush brush( ((state & ODS_DISABLED) || m_crColourBk == CLR_DEFAULT)? 
                  ::GetSysColor(COLOR_3DFACE) : m_crColourBk);
    CBrush* pOldBrush = (CBrush*) pDC->SelectObject(&brush);
	pDC->SelectStockObject(NULL_PEN);
    pDC->Rectangle(rect);
    pDC->SelectObject(pOldBrush);

    // Draw the window text (if any)
    GetWindowText(m_strText);
    if (m_strText.GetLength())
    {
        pDC->SetBkMode(TRANSPARENT);
        if (state & ODS_DISABLED)
        {
            rect.OffsetRect(1,1);
            pDC->SetTextColor(::GetSysColor(COLOR_3DHILIGHT));
            pDC->DrawText(m_strText, rect, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
            rect.OffsetRect(-1,-1);
            pDC->SetTextColor(::GetSysColor(COLOR_3DSHADOW));
            pDC->DrawText(m_strText, rect, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
        }
        else
        {
            pDC->SetTextColor((m_crColourText == CLR_DEFAULT)? 0 : m_crColourText);
            pDC->DrawText(m_strText, rect, DT_CENTER|DT_SINGLELINE|DT_VCENTER);
        }
    }

    // Draw focus rect
    if (state & ODS_FOCUS) 
    {
        rect.DeflateRect(1,1);
        pDC->DrawFocusRect(rect);
    }
}

/////////////////////////////////////////////////////////////////////////////
// CColourPicker overrides

void CColourPicker::PreSubclassWindow() 
{
    ModifyStyle(0, BS_OWNERDRAW);        // Make it owner drawn
    CButton::PreSubclassWindow();
    SetWindowSize();                     // resize appropriately
}

/////////////////////////////////////////////////////////////////////////////
// CColourPicker attributes

COLORREF CColourPicker::GetColour()
{ 
    return (m_nSelectionMode == CP_MODE_TEXT)? 
        GetTextColour(): GetBkColour(); 
}

void CColourPicker::SetColour(COLORREF crColour)
{ 
    (m_nSelectionMode == CP_MODE_TEXT)? 
        SetTextColour(crColour): SetBkColour(crColour); 
}

void CColourPicker::SetBkColour(COLORREF crColourBk)
{
    m_crColourBk = crColourBk;
    if (IsWindow(m_hWnd))
        RedrawWindow();
}

void CColourPicker::SetTextColour(COLORREF crColourText)
{
    m_crColourText = crColourText;
    if (IsWindow(m_hWnd)) 
        RedrawWindow();
}

void CColourPicker::SetDefaultText(LPCTSTR szDefaultText)
{
    m_strDefaultText = (szDefaultText)? szDefaultText : _T("");
}

void CColourPicker::SetCustomText(LPCTSTR szCustomText)
{
    m_strCustomText = (szCustomText)? szCustomText : _T("");
}

/////////////////////////////////////////////////////////////////////////////
// CColourPicker implementation

void CColourPicker::SetWindowSize()
{
    // Get size dimensions of edges
    CSize MarginSize(::GetSystemMetrics(SM_CXEDGE), ::GetSystemMetrics(SM_CYEDGE));

    // Get size of dropdown arrow
    int nArrowWidth = max(::GetSystemMetrics(SM_CXHTHUMB), 5*MarginSize.cx);
    int nArrowHeight = max(::GetSystemMetrics(SM_CYVTHUMB), 5*MarginSize.cy);
    CSize ArrowSize(max(nArrowWidth, nArrowHeight), max(nArrowWidth, nArrowHeight));

    // Get window size
    CRect rect;
    GetWindowRect(rect);

    CWnd* pParent = GetParent();
    if (pParent)
        pParent->ScreenToClient(rect);

    // Set window size at least as wide as 2 arrows, and as high as arrow + margins
    int nWidth = max(rect.Width(), 2*ArrowSize.cx + 2*MarginSize.cx);
    MoveWindow(rect.left, rect.top, nWidth, ArrowSize.cy+2*MarginSize.cy, TRUE);

    // Get the new coords of this window
    GetWindowRect(rect);
    ScreenToClient(rect);

    // Get the rect where the arrow goes, and convert to client coords.
    m_ArrowRect.SetRect(rect.right - ArrowSize.cx - MarginSize.cx, 
                        rect.top + MarginSize.cy, rect.right - MarginSize.cx,
                        rect.bottom - MarginSize.cy);
}

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲日本青草视频在线怡红院 | 亚洲日本免费电影| 一区二区在线看| 青青草原综合久久大伊人精品 | 精品乱人伦一区二区三区| 国产日本亚洲高清| 亚洲欧美偷拍卡通变态| 日韩专区欧美专区| 国产一区二区三区四区五区入口 | 亚洲va天堂va国产va久| 韩国中文字幕2020精品| 色综合欧美在线| 777a∨成人精品桃花网| 中文字幕欧美国产| 亚洲高清中文字幕| 粉嫩aⅴ一区二区三区四区 | 亚洲不卡在线观看| 国产xxx精品视频大全| 欧美亚洲自拍偷拍| 久久免费看少妇高潮| 亚洲最大成人综合| 国产精华液一区二区三区| 欧美在线高清视频| 久久久久国产精品人| 亚洲无人区一区| 国产精品一区久久久久| 91国模大尺度私拍在线视频| 精品久久久久99| 一区二区三区四区蜜桃| 国产揄拍国内精品对白| 在线观看视频91| 久久九九全国免费| 日韩在线卡一卡二| 99国产精品国产精品毛片| 欧美va亚洲va香蕉在线 | 日韩一二三区视频| 中文字幕字幕中文在线中不卡视频| 麻豆精品精品国产自在97香蕉| 色噜噜夜夜夜综合网| 2023国产精品视频| 国内精品久久久久影院薰衣草 | 亚洲视频在线观看三级| 精品在线免费观看| 欧美色视频一区| 亚洲人成精品久久久久| 成人黄色免费短视频| 欧美成人高清电影在线| 亚洲成人免费影院| 91福利在线导航| 国产精品久久久久影视| 久热成人在线视频| 欧美日韩视频在线观看一区二区三区| 中文字幕第一区二区| 黑人巨大精品欧美黑白配亚洲| 91精品在线观看入口| 婷婷夜色潮精品综合在线| 色哟哟国产精品| 亚洲男同1069视频| 99精品欧美一区二区蜜桃免费| 久久精品日产第一区二区三区高清版 | 国产最新精品精品你懂的| 欧美日韩国产另类一区| 一个色综合网站| 91黄色激情网站| 一区二区三区影院| 欧美中文字幕一区| 亚洲国产一区二区在线播放| 欧美亚洲禁片免费| 亚洲制服丝袜在线| 欧美日韩在线播放| 午夜精品久久久久久久久久| 欧美日韩国产中文| 偷窥国产亚洲免费视频 | 精品亚洲porn| 精品国产三级a在线观看| 久久精品国产亚洲5555| 日韩精品在线网站| 国产一区91精品张津瑜| 久久婷婷久久一区二区三区| 国产成人在线电影| 国产精品家庭影院| 91网站在线观看视频| 亚洲精品乱码久久久久久久久| 91久久精品一区二区二区| 亚洲一区精品在线| 欧美精选午夜久久久乱码6080| 丝袜国产日韩另类美女| 日韩欧美一区二区三区在线| 国产一区二区精品在线观看| 日本一区二区在线不卡| 色呦呦国产精品| 亚洲不卡一区二区三区| 欧美大片日本大片免费观看| 国产麻豆精品theporn| 国产精品视频在线看| 91色视频在线| 肉色丝袜一区二区| 久久一日本道色综合| va亚洲va日韩不卡在线观看| 亚洲综合色网站| 欧美成人一区二区| 成人av网在线| 亚洲sss视频在线视频| 日韩欧美一区中文| 成人手机在线视频| 亚洲伊人色欲综合网| 日韩视频一区二区| 成人av资源站| 午夜精品久久一牛影视| 国产欧美一区二区三区沐欲| 在线观看视频一区| 国产一区二区在线影院| 亚洲精品国产高清久久伦理二区| 欧美亚洲日本国产| 国产成人在线视频免费播放| 亚洲成人精品一区| 久久精品亚洲麻豆av一区二区| 色综合久久综合中文综合网| 老司机午夜精品99久久| 成人欧美一区二区三区小说| 91精品国产综合久久精品麻豆| 国产suv精品一区二区883| 亚洲国产一区二区视频| 亚洲国产激情av| 4438亚洲最大| 99久久精品久久久久久清纯| 日韩 欧美一区二区三区| 国产精品麻豆久久久| 日韩一区二区三| 一本久道久久综合中文字幕 | 久久美女高清视频| 欧美久久婷婷综合色| 成人激情小说乱人伦| 蜜臀a∨国产成人精品| 亚洲人精品午夜| 精品国产乱码久久| 91一区一区三区| 狠狠色丁香婷婷综合久久片| 伊人色综合久久天天人手人婷| 日韩久久久久久| 欧美三级三级三级爽爽爽| 国产成人av电影在线| 麻豆精品视频在线观看| 亚洲成人自拍偷拍| 亚洲人快播电影网| 日本一区二区视频在线| 26uuu国产电影一区二区| 欧美色爱综合网| 91麻豆免费在线观看| 国产精品夜夜嗨| 青青青伊人色综合久久| 亚洲国产欧美日韩另类综合| 国产精品嫩草影院av蜜臀| 久久影院午夜片一区| 3d动漫精品啪啪1区2区免费| 色婷婷精品大在线视频| 成人免费黄色在线| 国产一区二区三区不卡在线观看| 奇米影视一区二区三区| 五月天一区二区三区| 一区二区三区日韩在线观看| 国产精品短视频| 国产精品久久久久久久久免费樱桃| 精品国产一区二区三区不卡| 在线综合视频播放| 在线观看视频一区二区欧美日韩| av男人天堂一区| 成人午夜激情在线| 国产成人午夜视频| 国产乱码精品一区二区三| 久久成人免费日本黄色| 青青草国产精品亚洲专区无| 亚洲国产毛片aaaaa无费看| 亚洲激情男女视频| 亚洲精品福利视频网站| 国产精品高清亚洲| 日韩美女精品在线| 亚洲人成小说网站色在线| 国产精品国模大尺度视频| 欧美国产日韩在线观看| 国产日韩成人精品| 中文字幕欧美激情| 中文字幕一区二区不卡| 国产精品久久久久影院| 亚洲视频每日更新| 亚洲尤物在线视频观看| 亚洲午夜视频在线| 日韩精品欧美成人高清一区二区| 婷婷中文字幕综合| 久久精品国产亚洲高清剧情介绍| 九九国产精品视频| 国产综合成人久久大片91| 国产一区二区精品久久99| 国产精品一区二区黑丝| 国产精品一区在线| 成人午夜精品一区二区三区| 97精品超碰一区二区三区| 色综合欧美在线| 欧美精品在线视频| 日韩欧美成人激情|