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

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

?? colourpopup.cpp

?? WinCE開發技巧與實例的配套源碼
?? CPP
?? 第 1 頁 / 共 3 頁
字號:
        {
            if (m_strDefaultText.GetLength())
                row = col = DEFAULT_BOX_VALUE;
            else if (m_strCustomText.GetLength())
                row = col = CUSTOM_BOX_VALUE;
            else
            { 
                row = GetRow(m_nNumColours-1); 
                col = GetColumn(m_nNumColours-1); 
            }
        }
        ChangeSelection(GetIndex(row, col));
    }

    if (nChar == VK_RIGHT) 
    {
        if (row == DEFAULT_BOX_VALUE) 
            row = col = 0; 
        else if (row == CUSTOM_BOX_VALUE)
        {
            if (m_strDefaultText.GetLength())
                row = col = DEFAULT_BOX_VALUE;
            else
                row = col = 0;
        }
        else if (col < m_nNumColumns-1) 
            col++;
        else 
        { 
            col = 0; row++;
        }

        if (GetIndex(row,col) == INVALID_COLOUR)
        {
            if (m_strCustomText.GetLength())
                row = col = CUSTOM_BOX_VALUE;
            else if (m_strDefaultText.GetLength())
                row = col = DEFAULT_BOX_VALUE;
            else
                row = col = 0;
        }

        ChangeSelection(GetIndex(row, col));
    }

    if (nChar == VK_LEFT) 
    {
        if (row == DEFAULT_BOX_VALUE)
        {
            if (m_strCustomText.GetLength())
                row = col = CUSTOM_BOX_VALUE;
            else
           { 
                row = GetRow(m_nNumColours-1); 
                col = GetColumn(m_nNumColours-1); 
            }
        }
        else if (row == CUSTOM_BOX_VALUE)
        { 
            row = GetRow(m_nNumColours-1); 
            col = GetColumn(m_nNumColours-1); 
        }
        else if (col > 0) col--;
        else /* col == 0 */
        {
            if (row > 0) { row--; col = m_nNumColumns-1; }
            else 
            {
                if (m_strDefaultText.GetLength())
                    row = col = DEFAULT_BOX_VALUE;
                else if (m_strCustomText.GetLength())
                    row = col = CUSTOM_BOX_VALUE;
                else
                { 
                    row = GetRow(m_nNumColours-1); 
                    col = GetColumn(m_nNumColours-1); 
                }
            }
        }
        ChangeSelection(GetIndex(row, col));
    }

    if (nChar == VK_ESCAPE) 
    {
        m_crColour = m_crInitialColour;
        EndSelection(CPN_SELENDCANCEL);
        return;
    }

    if (nChar == VK_RETURN || nChar == VK_SPACE)
    {
        EndSelection(CPN_SELENDOK);
        return;
    }

    CWnd::OnKeyDown(nChar, nRepCnt, nFlags);
}


#ifndef _WIN32_WCE

//
// Windows CE does not support these messages
// The Popup creation method is different (see CColourPicker)
//

// auto-deletion
void CColourPopup::OnNcDestroy() 
{
    CWnd::OnNcDestroy();
    delete this;
}


// KillFocus problem fix suggested by Paul Wilkerson.
void CColourPopup::OnActivateApp(BOOL bActive, HTASK hTask) 
{
	CWnd::OnActivateApp(bActive, hTask);

	// If Deactivating App, cancel this selection
	if (!bActive)
		 EndSelection(CPN_SELENDCANCEL);
}


#endif


void CColourPopup::OnPaint() 
{
    CPaintDC dc(this); // device context for painting

    // Draw the Default Area text
    if (m_strDefaultText.GetLength())
        DrawCell(&dc, DEFAULT_BOX_VALUE);
 
    // Draw colour cells
    for (int i = 0; i < m_nNumColours; i++)
        DrawCell(&dc, i);
    
    // Draw custom text
    if (m_strCustomText.GetLength())
        DrawCell(&dc, CUSTOM_BOX_VALUE);

    // Draw raised window edge (ex-window style WS_EX_WINDOWEDGE is sposed to do this,
    // but for some reason isn't
    CRect rect;
    GetClientRect(rect);
    dc.DrawEdge(rect, EDGE_RAISED, BF_RECT);
}


#ifdef _WIN32_WCE


// CColourPopup::OnLButtonDown
//
//		Use this message instead of WM_MOUSEMOVE to start the selection
//		Note that the code is the same as the desktop version 
//		(if it ain't broken, don't fix it)
//
void CColourPopup::OnLButtonDown(UINT nFlags, CPoint point)
{
    int nNewSelection = INVALID_COLOUR;

    // Translate points to be relative raised window edge
    point.x -= m_nMargin;
    point.y -= m_nMargin;

    // First check we aren't in text box
    if (m_strCustomText.GetLength() && m_CustomTextRect.PtInRect(point))
        nNewSelection = CUSTOM_BOX_VALUE;
    else if (m_strDefaultText.GetLength() && m_DefaultTextRect.PtInRect(point))
        nNewSelection = DEFAULT_BOX_VALUE;
    else
    {
        // Take into account text box
        if (m_strDefaultText.GetLength()) 
            point.y -= m_DefaultTextRect.Height();  

        // Get the row and column
        nNewSelection = GetIndex(point.y / m_nBoxSize, point.x / m_nBoxSize);

        // In range? If not, default and exit
        if (nNewSelection < 0 || nNewSelection >= m_nNumColours)
        {
            CWnd::OnLButtonDown(nFlags, point);
            return;
        }
    }

    // OK - we have the row and column of the current selection (may be CUSTOM_BOX_VALUE)
    // Has the row/col selection changed? If yes, then redraw old and new cells.
    if (nNewSelection != m_nCurrentSel)
        ChangeSelection(nNewSelection);

    CWnd::OnLButtonDown(nFlags, point);
}

#else


void CColourPopup::OnMouseMove(UINT nFlags, CPoint point) 
{
    int nNewSelection = INVALID_COLOUR;

    // Translate points to be relative raised window edge
    point.x -= m_nMargin;
    point.y -= m_nMargin;

    // First check we aren't in text box
    if (m_strCustomText.GetLength() && m_CustomTextRect.PtInRect(point))
        nNewSelection = CUSTOM_BOX_VALUE;
    else if (m_strDefaultText.GetLength() && m_DefaultTextRect.PtInRect(point))
        nNewSelection = DEFAULT_BOX_VALUE;
    else
    {
        // Take into account text box
        if (m_strDefaultText.GetLength()) 
            point.y -= m_DefaultTextRect.Height();  

        // Get the row and column
        nNewSelection = GetIndex(point.y / m_nBoxSize, point.x / m_nBoxSize);

        // In range? If not, default and exit
        if (nNewSelection < 0 || nNewSelection >= m_nNumColours)
        {
            CWnd::OnMouseMove(nFlags, point);
            return;
        }
    }

    // OK - we have the row and column of the current selection (may be CUSTOM_BOX_VALUE)
    // Has the row/col selection changed? If yes, then redraw old and new cells.
    if (nNewSelection != m_nCurrentSel)
        ChangeSelection(nNewSelection);

    CWnd::OnMouseMove(nFlags, point);
}

#endif


// End selection on LButtonUp
void CColourPopup::OnLButtonUp(UINT nFlags, CPoint point) 
{    
    CWnd::OnLButtonUp(nFlags, point);

    DWORD pos = GetMessagePos();
    point = CPoint(LOWORD(pos), HIWORD(pos));

    if (m_WindowRect.PtInRect(point))
        EndSelection(CPN_SELENDOK);
    else
        EndSelection(CPN_SELENDCANCEL);
}

/////////////////////////////////////////////////////////////////////////////
// CColourPopup implementation

int CColourPopup::GetIndex(int row, int col) const
{ 
    if ((row == CUSTOM_BOX_VALUE || col == CUSTOM_BOX_VALUE) && m_strCustomText.GetLength())
        return CUSTOM_BOX_VALUE;
    else if ((row == DEFAULT_BOX_VALUE || col == DEFAULT_BOX_VALUE) && m_strDefaultText.GetLength())
        return DEFAULT_BOX_VALUE;
    else if (row < 0 || col < 0 || row >= m_nNumRows || col >= m_nNumColumns)
        return INVALID_COLOUR;
    else
    {
        if (row*m_nNumColumns + col >= m_nNumColours)
            return INVALID_COLOUR;
        else
            return row*m_nNumColumns + col;
    }
}

int CColourPopup::GetRow(int nIndex) const               
{ 
    if (nIndex == CUSTOM_BOX_VALUE && m_strCustomText.GetLength())
        return CUSTOM_BOX_VALUE;
    else if (nIndex == DEFAULT_BOX_VALUE && m_strDefaultText.GetLength())
        return DEFAULT_BOX_VALUE;
    else if (nIndex < 0 || nIndex >= m_nNumColours)
        return INVALID_COLOUR;
    else
        return nIndex / m_nNumColumns; 
}

int CColourPopup::GetColumn(int nIndex) const            
{ 
    if (nIndex == CUSTOM_BOX_VALUE && m_strCustomText.GetLength())
        return CUSTOM_BOX_VALUE;
    else if (nIndex == DEFAULT_BOX_VALUE && m_strDefaultText.GetLength())
        return DEFAULT_BOX_VALUE;
    else if (nIndex < 0 || nIndex >= m_nNumColours)
        return INVALID_COLOUR;
    else
        return nIndex % m_nNumColumns; 
}

void CColourPopup::FindCellFromColour(COLORREF crColour)
{
    if (crColour == CLR_DEFAULT && m_strDefaultText.GetLength())
    {
        m_nChosenColourSel = DEFAULT_BOX_VALUE;
        return;
    }

    for (int i = 0; i < m_nNumColours; i++)
    {
        if (GetColour(i) == crColour)
        {
            m_nChosenColourSel = i;
            return;
        }
    }

    if (m_strCustomText.GetLength())
        m_nChosenColourSel = CUSTOM_BOX_VALUE;
    else
        m_nChosenColourSel = INVALID_COLOUR;
}

// Gets the dimensions of the colour cell given by (row,col)
BOOL CColourPopup::GetCellRect(int nIndex, const LPRECT& rect)
{
    if (nIndex == CUSTOM_BOX_VALUE)
    {
        ::SetRect(rect, 
                  m_CustomTextRect.left,  m_CustomTextRect.top,
                  m_CustomTextRect.right, m_CustomTextRect.bottom);
        return TRUE;
    }
    else if (nIndex == DEFAULT_BOX_VALUE)
    {
        ::SetRect(rect, 
                  m_DefaultTextRect.left,  m_DefaultTextRect.top,
                  m_DefaultTextRect.right, m_DefaultTextRect.bottom);
        return TRUE;
    }

    if (nIndex < 0 || nIndex >= m_nNumColours)
        return FALSE;

    rect->left = GetColumn(nIndex) * m_nBoxSize + m_nMargin;
    rect->top  = GetRow(nIndex) * m_nBoxSize + m_nMargin;

    // Move everything down if we are displaying a default text area
    if (m_strDefaultText.GetLength()) 
        rect->top += (m_nMargin + m_DefaultTextRect.Height());

    rect->right = rect->left + m_nBoxSize;
    rect->bottom = rect->top + m_nBoxSize;

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
99re这里都是精品| 久久久不卡网国产精品二区| 欧美一区二区视频在线观看2020 | 国产麻豆欧美日韩一区| 91色porny在线视频| 日韩美一区二区三区| 一区二区三区四区高清精品免费观看| 青椒成人免费视频| 91久久人澡人人添人人爽欧美| 日韩欧美电影一区| 亚洲精品第一国产综合野| 国产一区二区三区国产| 日本丰满少妇一区二区三区| 久久久蜜桃精品| 美女脱光内衣内裤视频久久网站 | 麻豆国产91在线播放| 欧美午夜精品久久久久久超碰| 国产精品素人一区二区| 久久97超碰色| 欧美va天堂va视频va在线| 亚洲午夜久久久久中文字幕久| 成人免费高清在线| 国产欧美精品在线观看| 精品一区精品二区高清| 91精品国产综合久久久蜜臀粉嫩 | 国产91高潮流白浆在线麻豆 | 精品国产1区二区| 日本成人在线看| 91精品黄色片免费大全| 亚洲一区二区三区小说| 色屁屁一区二区| 亚洲欧美日韩一区二区三区在线观看| 成人av午夜影院| 国产精品久久久久国产精品日日 | 中文字幕欧美激情| 不卡在线观看av| 国产日韩欧美精品综合| 国产成人综合精品三级| 欧美激情在线一区二区三区| 国产福利91精品一区| 国产无人区一区二区三区| 精品无人码麻豆乱码1区2区 | 国产精品精品国产色婷婷| 国产九九视频一区二区三区| 精品久久久三级丝袜| 国产永久精品大片wwwapp| 久久久久久久综合色一本| 韩国女主播一区| 国产日韩欧美麻豆| 成人精品国产福利| 日韩午夜激情av| 国产视频一区二区在线观看| 国产99久久久国产精品潘金 | 狠狠色丁香婷婷综合| 久久综合五月天婷婷伊人| 成人午夜私人影院| 亚洲综合在线第一页| 欧美军同video69gay| 激情另类小说区图片区视频区| 国产日韩成人精品| 日本韩国精品在线| 免费成人在线视频观看| 国产亚洲欧美激情| 99久久精品一区二区| 丝袜美腿一区二区三区| 久久亚洲精华国产精华液| 成人蜜臀av电影| 午夜精品一区在线观看| 国产亚洲一区二区三区在线观看| 成人精品在线视频观看| 亚洲电影你懂得| 国产精品萝li| 欧美电影在哪看比较好| 成人性视频网站| 日韩电影免费在线观看网站| 国产欧美综合色| 欧美日韩久久不卡| 成人手机电影网| 午夜精品一区二区三区免费视频 | 亚洲图片另类小说| 欧美一级高清片| 91视频你懂的| 久久精品国产精品亚洲精品| 亚洲天堂久久久久久久| 精品欧美一区二区三区精品久久 | 国产成人免费在线| 五月婷婷综合网| 国产精品你懂的在线| 欧美一区二区精品在线| 97成人超碰视| 丁香桃色午夜亚洲一区二区三区| 婷婷国产v国产偷v亚洲高清| 亚洲人妖av一区二区| 精品久久久三级丝袜| 欧美丰满少妇xxxbbb| 色天使色偷偷av一区二区| 国产成a人亚洲精品| 久久国产尿小便嘘嘘| 亚洲一区二区在线视频| 中文字幕一区二区在线播放| 久久综合狠狠综合久久激情| 欧美军同video69gay| 欧美综合久久久| 色综合夜色一区| 不卡视频免费播放| 成人综合婷婷国产精品久久免费| 久久精品久久精品| 久久草av在线| 蜜桃一区二区三区在线| 天堂成人国产精品一区| 亚洲动漫第一页| 亚洲电影在线播放| 五月综合激情日本mⅴ| 亚洲高清视频在线| 亚洲va在线va天堂| 亚洲图片欧美色图| 亚洲第一福利视频在线| 五月天激情综合网| 日韩精品一级二级| 久久精品久久久精品美女| 紧缚捆绑精品一区二区| 国内精品伊人久久久久av影院| 麻豆91小视频| 国产成人激情av| av成人老司机| 91高清在线观看| 欧美巨大另类极品videosbest | 欧美tickle裸体挠脚心vk| 欧美一区二区精品久久911| 日韩一卡二卡三卡四卡| 精品少妇一区二区三区在线播放| 精品粉嫩超白一线天av| 久久久噜噜噜久久中文字幕色伊伊| 久久亚洲综合av| 国产精品色一区二区三区| 国产精品女主播av| 亚洲一区中文日韩| 日欧美一区二区| 国产不卡在线播放| 色嗨嗨av一区二区三区| 日本高清成人免费播放| 欧美一区二区三区成人| 国产亚洲福利社区一区| 亚洲精品亚洲人成人网 | 国产老女人精品毛片久久| 成人在线视频一区| 欧美三级韩国三级日本一级| 欧美一区二区视频在线观看2020 | ...xxx性欧美| 亚洲成人777| 国产一区二区福利| 91丝袜呻吟高潮美腿白嫩在线观看| 欧美性猛交xxxx乱大交退制版 | 91传媒视频在线播放| 91精品欧美综合在线观看最新 | 伊人夜夜躁av伊人久久| 美女国产一区二区三区| 91麻豆免费在线观看| 日韩欧美国产一二三区| 国产精品乱人伦| 日韩成人精品视频| 一本一道综合狠狠老| 欧美成人一区二区三区片免费| 亚洲天堂久久久久久久| 激情综合网av| 91国产精品成人| 亚洲国产精品高清| 久久精品99国产精品日本| 91浏览器打开| 国产无遮挡一区二区三区毛片日本| 午夜日韩在线电影| 91免费观看视频在线| 久久综合丝袜日本网| 天天综合日日夜夜精品| av电影在线观看一区| 久久青草国产手机看片福利盒子| 香蕉乱码成人久久天堂爱免费| 成人国产精品免费观看视频| 日韩欧美国产一区二区在线播放| 亚洲一级电影视频| av激情综合网| 国产欧美一区二区三区在线看蜜臀 | 成人免费视频免费观看| 91麻豆精品国产91久久久| 一区二区三区在线视频观看58| 国产成人精品一区二区三区四区 | 亚洲欧美综合网| 国产高清精品网站| 欧美电视剧在线观看完整版| 午夜精品视频一区| 欧美日韩在线播| 亚洲欧美另类久久久精品| 成人国产亚洲欧美成人综合网| 精品国产乱码久久久久久1区2区| 强制捆绑调教一区二区| 欧美伦理影视网| 日韩精品每日更新| 欧美一级黄色大片| 麻豆一区二区三区| 精品欧美久久久|