狠狠爱成人网_日韩一级在线_国产综合自拍_亚洲精品韩国_亚洲视频导航_麻豆成人在线播放_欧美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视频
97精品久久久久中文字幕| 欧美久久一区| 成人综合婷婷国产精品久久免费| www.性欧美| 午夜综合激情| 欧美一级二级三级乱码| 国产精品国产三级国产| 丝瓜av网站精品一区二区| 成人手机在线视频| 99亚洲视频| 2欧美一区二区三区在线观看视频 337p粉嫩大胆噜噜噜噜噜91av | 国产精品乡下勾搭老头1| 欧美在线一二三区| 91福利在线播放| 国产亚洲欧美中文| 免费久久精品视频| 欧美成人一区二免费视频软件| 美女久久网站| 久久精品日产第一区二区三区高清版| 视频一区欧美日韩| 欧美日韩亚洲一区二区三区在线| 在线视频你懂得一区| 国产精品乱码一区二三区小蝌蚪| 激情偷乱视频一区二区三区| 在线国产精品一区| 精品国产sm最大网站| 日韩av一二三| 亚洲精品日韩在线观看| 久久亚洲二区三区| 精品一区二区成人精品| 亚洲一区二区三区四区中文| 久久网站最新地址| 韩国成人在线视频| 美日韩在线观看| 亚洲视频一区在线| 91在线视频官网| 欧美人牲a欧美精品| 丝袜诱惑制服诱惑色一区在线观看 | 欧美在线观看一二区| 亚洲综合男人的天堂| 欧美激情综合| 日韩精品一区二区三区在线播放| 免费一级片91| 欧美综合二区| 一区二区三区**美女毛片| 91视频观看免费| 欧美成人精品高清在线播放| 久久精品国产在热久久| 久久久久久久尹人综合网亚洲| 成人欧美一区二区三区| 欧美69wwwcom| 337p日本欧洲亚洲大胆色噜噜| 国产精品一区二区在线观看网站| 久久一区免费| 天天av天天翘天天综合网| 日韩视频二区| 亚洲免费色视频| 最新日韩av| 亚洲欧美偷拍三级| 亚洲国产欧美日韩| 日韩理论片在线| 在线视频国内自拍亚洲视频| 国产精品大尺度| 在线观看欧美一区| 一区二区三区在线观看欧美| 亚洲精品免费观看| 亚洲资源在线观看| 老司机一区二区三区| 偷拍一区二区三区四区| 免费在线观看一区二区| 日韩 欧美一区二区三区| 久久最新视频| 精品一区二区影视| 欧美一区二区三区免费观看视频| 九色|91porny| 欧美大片日本大片免费观看| 成人sese在线| 国产精品久久久久三级| 99热在线精品观看| 图片区小说区区亚洲影院| 日本韩国精品在线| 国产一区二区三区综合| 久久伊人蜜桃av一区二区| 午夜视频久久久| 亚洲精品视频在线| 在线观看一区日韩| 国产成人免费在线视频| 久久五月婷婷丁香社区| 亚洲日本视频| 美女视频网站黄色亚洲| 日韩亚洲欧美在线观看| 欧美在线亚洲综合一区| 亚洲精品视频免费看| 欧美性受xxxx| 成人av片在线观看| 国产精品高潮久久久久无| 国产精品日韩一区二区| 精彩视频一区二区| 精品国产乱码久久久久久浪潮 | 香港成人在线视频| 欧美一区二区精美| 亚洲一级影院| 奇米影视一区二区三区| 亚洲精品在线三区| 国产精品美女| 国产不卡视频在线播放| 综合久久久久综合| 欧美亚洲国产一区二区三区va| 成人18视频日本| 一区二区在线观看视频在线观看| 欧美日韩成人在线一区| 欧美日韩无遮挡| 日韩电影在线一区二区| 久久久国产精品不卡| 香蕉成人久久| 99国产精品久| 日韩电影在线一区二区| 日本一区二区视频在线| 欧美性色欧美a在线播放| 欧美另类综合| 久久99精品国产91久久来源| 国产欧美日产一区| 欧美日韩一级视频| 一区二区在线不卡| 丰满白嫩尤物一区二区| 午夜视频在线观看一区二区 | 午夜精品偷拍| 美腿丝袜亚洲一区| 中文字幕五月欧美| 日韩免费一区二区| 久久国产精品亚洲va麻豆| 午夜精品视频| 国产传媒日韩欧美成人| 午夜精品久久久久久久久久久 | 99视频精品免费观看| 不卡的av网站| 九九久久精品视频| 亚洲午夜精品网| 欧美国产成人在线| 欧美一区二区三区啪啪| 校园春色综合网| 狠狠入ady亚洲精品| 国产成人在线免费| 视频一区二区三区中文字幕| 国产精品国产自产拍在线| 日韩免费看的电影| 欧美日韩一区二区三区在线 | 精品亚洲国内自在自线福利| 亚洲一区在线观看免费观看电影高清| 久久久美女艺术照精彩视频福利播放| 欧洲精品一区二区| 久久福利影视| 在线视频精品| 黄色精品网站| 欧美激情第10页| 91在线国产福利| 国产精品一区二区久久不卡| 蜜乳av一区二区| 天堂一区二区在线| 亚洲成人福利片| 亚洲午夜久久久久| 亚洲视频图片小说| 国产精品电影一区二区| 中文字幕国产一区| 国产色产综合色产在线视频| 精品成人一区二区三区| 日韩一级完整毛片| 日韩精品一区二区在线| 日韩精品一区二区三区老鸭窝| 欧美人与z0zoxxxx视频| 69成人精品免费视频| 欧美乱妇20p| 911国产精品| 欧美一级欧美三级| 欧美成人一区二区三区在线观看 | 成人av先锋影音| 成人午夜电影小说| 不卡的av电影| 欧美日韩免费观看一区=区三区| 欧美精品不卡| 亚洲高清网站| 亚洲欧美大片| 91九色02白丝porn| 欧美日本在线观看| 精品日韩欧美一区二区| 久久久久久影视| 亚洲丝袜制服诱惑| 亚洲国产日韩精品| 久久99热99| 成人高清视频在线| 欧美午夜在线| 亚洲一区欧美激情| 欧美色精品在线视频| 欧美成人国产一区二区| 国产精品五月天| 午夜久久久久久| 国产精品自拍在线| 欧美黄色一区| 欧美一级二区| 日韩视频免费观看高清在线视频|