狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频

當(dāng)前位置:系統(tǒng)之家 > 技術(shù)開發(fā)教程 > 詳細(xì)頁面

能選擇顏色的組合框

能選擇顏色的組合框

更新時(shí)間:2024-04-09 文章作者:未知 信息來源:網(wǎng)絡(luò) 閱讀次數(shù):

作者:賈旭濱(譯)

//原著:Baldvin Hansson
//譯者:重慶大學(xué)光電工程學(xué)院 賈旭濱(daixi1703163@163.net)
//歡迎大家批評指教,謝謝!

    我最近在寫程序的時(shí)候,經(jīng)常碰到需要選擇顏色的控件,這種控件在許多地方是比較常用的,就象QQ聊天室中可以選擇自己所說的話的顏色的那種控件,這其實(shí)就是在一個(gè)基本對話框上添加一個(gè)或者幾個(gè)組合框,然后可以通過組合框選擇你想要的顏色而已。

    下面就是程序代碼,你需要做的很簡單,你只要把下面的2個(gè)文件添加到你工程中,然后你還要通過VC的類向?qū)?chuàng)建一個(gè)該類型的成員變量給組合框,這樣就行了。如果你想有更多的顏色選擇的話,你可以通過修改.CPP文件中的有關(guān)與顏色定義的數(shù)組就行了,或者說你有更好的編程水平的話,你完全可以把它擴(kuò)展成一個(gè)很實(shí)用的類。我沒有把代碼全部都看過,我想讀者如果有興趣的話,最好還是把代碼全部看一遍,這樣會(huì)對你更有好處的。以下是全部代碼:

//頭文件
#if !defined(afx_combocolorpicker_h__b2348841_5541_11d1_8756_00a0c9181e86__included_)
#define afx_combocolorpicker_h__b2348841_5541_11d1_8756_00a0c9181e86__included_

#if _msc_ver >= 1000
#pragma once
#endif // _msc_ver >= 1000
// combocolorpicker.h : header file
// ? 1997 baldvin hansson

/////////////////////////////////////////////////////////////////////////////
// ccombocolorpicker window

class ccombocolorpicker : public ccombobox
{
// construction
public:
    ccombocolorpicker();

// attributes
private:
    bool m_binitialized;
    static colorref m_rgstandardcolors[];
public:

// operations
private:
    void initializedata();
public:
    colorref getselectedcolor();

// overrides
    // classwizard generated virtual function overrides
    //{{afx_virtual(ccombocolorpicker)
    protected:
    virtual void presubclasswindow();
    //}}afx_virtual
    virtual void drawitem(lpdrawitemstruct lpdrawitemstruct);

// implementation
public:
    virtual ~ccombocolorpicker();

    // generated message map functions
protected:
    //{{afx_msg(ccombocolorpicker)
    afx_msg int oncreate(lpcreatestruct lpcreatestruct);
    //}}afx_msg

    declare_message_map()
};

/////////////////////////////////////////////////////////////////////////////

//{{afx_insert_location}}
// microsoft developer studio will insert additional declarations immediately before the previous line.

#endif // !defined(afx_combocolorpicker_h__b2348841_5541_11d1_8756_00a0c9181e86__included_)

//以下是對于的CPP文件
// combocolorpicker.cpp : implementation file
// ? 1997 baldvin hansson

#include "stdafx.h"
#include "combocolorpicker.h"

#ifdef _debug
#define new debug_new
#undef this_file
static char this_file[] = __file__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ccombocolorpicker

colorref ccombocolorpicker::m_rgstandardcolors[] = {
    rgb(0, 0, 0),            // black
    rgb(255, 255, 255),        // white
    rgb(128, 0, 0),            // dark red
    rgb(0, 128, 0),            // dark green
    rgb(128, 128, 0),        // dark yellow
    rgb(0, 0, 128),            // dark blue
    rgb(128, 0, 128),        // dark magenta
    rgb(0, 128, 128),        // dark cyan
    rgb(192, 192, 192),        // light grey
    rgb(128, 128, 128),        // dark grey
    rgb(255, 0, 0),            // red
    rgb(0, 255, 0),            // green
    rgb(255, 255, 0),        // yellow
    rgb(0, 0, 255),            // blue
    rgb(255, 0, 255),        // magenta
    rgb(0, 255, 255),        // cyan
    };

ccombocolorpicker::ccombocolorpicker()
{
    m_binitialized = false;
}

ccombocolorpicker::~ccombocolorpicker()
{
}


begin_message_map(ccombocolorpicker, ccombobox)
    //{{afx_msg_map(ccombocolorpicker)
    on_wm_create()
    //}}afx_msg_map
end_message_map()

/////////////////////////////////////////////////////////////////////////////
// ccombocolorpicker message handlers

int ccombocolorpicker::oncreate(lpcreatestruct lpcreatestruct)
{
    if (ccombobox::oncreate(lpcreatestruct) == -1)
        return -1;
    
    initializedata();

    return 0;
}

void ccombocolorpicker::presubclasswindow()
{
    initializedata();
    
    ccombobox::presubclasswindow();
}

void ccombocolorpicker::initializedata()
{
    int nitem;

    if (m_binitialized)
        return;

    for (int ncolor = 0; ncolor hdc))
        return;

    colorref rgbtextcolor = dc.gettextcolor();
    colorref rgbbkcolor = dc.getbkcolor();

    if (lpdrawitemstruct->itemaction & oda_focus)
    {
        dc.drawfocusrect(&lpdrawitemstruct->rcitem);
    }
    else if (lpdrawitemstruct->itemaction & oda_drawentire)
    {
        if (lpdrawitemstruct->itemstate & ods_focus)
            dc.drawfocusrect(&lpdrawitemstruct->rcitem);
        else
            dc.exttextout(0, 0, eto_opaque, &lpdrawitemstruct->rcitem, _t(""), 0, null);
    }

    if (0 <= (int)lpdrawitemstruct->itemid)    // any item selected?
    {
        ::inflaterect(&lpdrawitemstruct->rcitem, -2, -2);
        
        dc.fillsolidrect(&lpdrawitemstruct->rcitem, (colorref)lpdrawitemstruct->itemdata);
        dc.framerect(&lpdrawitemstruct->rcitem, &brushblack);
    }

    // restore the dc state
    dc.settextcolor(rgbtextcolor);
    dc.setbkcolor(rgbbkcolor);
    dc.detach();
}

colorref ccombocolorpicker::getselectedcolor()
{
    int nitem = getcursel();
    if (cb_err == nitem)
        return rgb(0, 0, 0);    // default to black if nothing is selected

    return m_rgstandardcolors[nitem];
}

    以上只是一個(gè)很簡單的類,功能還很不完善,由于本人的VC水平還是菜鳥等級的,沒有能力把它給擴(kuò)展了,我很希望有讀者能把它給擴(kuò)展了,到時(shí)候可別忘記給我發(fā)一個(gè)。謝謝!

    譯于2001年9月9號。

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統(tǒng)下載排行

狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美jjzz_一区在线视频观看_美脚丝袜一区二区三区在线观看_欧美91视频
国产伦精品一区二区三区免费迷 | 久久久精品国产免大香伊| 日韩精品中午字幕| 欧美在线综合视频| 欧美日韩国产另类不卡| 欧美美女一区二区在线观看| 日韩欧美中文字幕制服| 在线视频观看一区| 日韩午夜激情| 欧美三区在线| 精彩视频一区二区三区| 专区另类欧美日韩| 国产酒店精品激情| 欧美高清一区| 欧美日韩一区二区三区视频| 国产精品九色蝌蚪自拍| 亚洲欧美在线aaa| 中文字幕乱码亚洲精品一区| 欧美成人福利视频| 日韩精品一区二区三区在线观看| 亚洲精品少妇30p| av成人老司机| 欧美日韩国产区一| 日韩色视频在线观看| 欧美日韩三级视频| 狠狠色噜噜狠狠色综合久| 亚洲少妇最新在线视频| 久久久久一区二区| 欧美日韩国产另类一区| 国产精品福利一区二区三区| 久草热8精品视频在线观看| 欧美精品aa| 欧美精品色一区二区三区| 亚洲另类在线制服丝袜| 国产制服丝袜一区| 国产欧美亚洲日本| 国产日韩欧美一区二区三区乱码 | 麻豆成人精品| 国产精品动漫网站| 国产大陆亚洲精品国产| 久久综合激情| 亚洲在线视频免费观看| 97久久超碰国产精品| 日本韩国欧美国产| 亚洲精品乱码久久久久久日本蜜臀| 国产精品99久久久久久似苏梦涵| 国产一区二区三区久久| 日韩美女视频一区| 亚洲欧美综合国产精品一区| 日韩精品一区二区三区在线| 国产激情一区二区三区| 91精品国产欧美一区二区18 | 欧美一级片在线看| 国产在线麻豆精品观看| 欧美日本高清视频在线观看| 蜜桃91丨九色丨蝌蚪91桃色| 欧美曰成人黄网| 国产综合色在线视频区| 884aa四虎影成人精品一区| 国产一区二区精品久久99| 欧美一区二区三区在线视频| 国内精品不卡在线| 国产亚洲综合性久久久影院| 国产精品v一区二区三区| 国产精品久久福利| 最新亚洲一区| 国产精品亚洲第一区在线暖暖韩国| 91精品欧美久久久久久动漫| 99精品视频一区| 一区二区欧美在线观看| 日本道在线观看一区二区| 国产又黄又大久久| 欧美国产1区2区| 亚洲大片在线| 国产成人在线视频免费播放| 亚洲色图欧美在线| 久久综合久久久| www.爱久久.com| 夜夜精品浪潮av一区二区三区| 欧洲国内综合视频| 亚洲二区免费| 国产成人亚洲综合a∨婷婷| 国产精品私人影院| 这里是久久伊人| 99精品国产福利在线观看免费| 国产盗摄一区二区| 亚洲成人免费av| 国产精品美女久久久久久久| 欧美精三区欧美精三区| 伊人久久婷婷色综合98网| 成人av电影免费在线播放| 五月综合激情日本mⅴ| 国产日韩v精品一区二区| 欧美日韩精品一区二区三区| 亚洲国产专区校园欧美| 欧美一区二区三区另类| 精品无码三级在线观看视频| 亚洲aⅴ怡春院| 一区二区视频在线| 中文字幕第一区综合| 久久色在线视频| 久久久久国产精品人| 久久视频一区二区| 精品国产自在久精品国产| 欧美一区2区视频在线观看| 久久动漫亚洲| 在线免费观看日本一区| 狂野欧美一区| 欧美亚洲一区二区在线观看| 欧美日精品一区视频| 久久一区精品| 精品视频全国免费看| 69堂亚洲精品首页| 久久亚洲一区二区三区明星换脸| 日韩免费高清av| 中文字幕乱码久久午夜不卡| 国产精品国产三级国产| 亚洲已满18点击进入久久| 亚洲网友自拍偷拍| 精品一区二区日韩| 白白色 亚洲乱淫| 国产一区二区三区四区老人| 99精品国产99久久久久久福利| 极品裸体白嫩激情啪啪国产精品| 香蕉亚洲视频| 欧美一级国产精品| 亚洲男人的天堂一区二区| 日韩二区在线观看| 午夜精品短视频| 色天天综合久久久久综合片| 久久综合资源网| 亚洲一区二区三区爽爽爽爽爽| 日本sm残虐另类| 欧美国产日本| 欧美一区中文字幕| 亚洲精品免费播放| 91理论电影在线观看| 久久久夜夜夜| 久久综合一区二区| 婷婷丁香激情综合| 亚洲高清视频一区| 久久精品夜色噜噜亚洲a∨| 蜜桃视频一区二区三区 | 日韩欧美电影一二三| 亚洲午夜免费视频| 99精品视频一区| 日韩视频免费直播| 国模大尺度一区二区三区| 亚洲久久一区二区| 亚洲精品一区二区三区99| 久久国内精品自在自线400部| 亚洲国产欧美国产综合一区| 国产日韩欧美在线一区| 国产91丝袜在线18| 欧美日韩精品一二三区| 亚洲电影一区二区三区| 亚洲精品美女久久7777777| 国产精品三级av在线播放| 欧美91视频| 日本一区二区成人在线| 欧美日韩一区二区视频在线| 精品福利在线导航| 播五月开心婷婷综合| 久久久亚洲高清| 极品少妇一区二区三区| 欧美极品少妇xxxxⅹ高跟鞋 | 国产精品一区二区在线播放| 欧美性猛片xxxx免费看久爱| 国内精品国产成人国产三级粉色| 色噜噜夜夜夜综合网| 偷拍一区二区三区| 欧美在线综合视频| 国产成人免费视频| 久久综合九色综合久久久精品综合| 成人av免费在线播放| 国产亚洲综合性久久久影院| 1000部精品久久久久久久久| 亚洲国产视频一区二区| 欧美日韩国产一级片| 国产不卡视频在线观看| 亚洲欧洲国产日本综合| 6080yy午夜一二三区久久| 羞羞视频在线观看欧美| 色综合网色综合| 国产精品456| 激情另类小说区图片区视频区| 亚洲成av人片一区二区| 日本一区二区三区在线观看| 欧美一区二区三区喷汁尤物| 色婷婷av一区| 在线看日韩精品电影| 色香蕉久久蜜桃| 日本久久一区二区三区| 麻豆成人小视频| 久久天堂精品| 欧美亚洲日本国产| 欧美性色aⅴ视频一区日韩精品| 色噜噜狠狠一区二区三区果冻| 国产精品亚洲欧美| 一本色道久久综合亚洲精品按摩|