香芋椰汁西米露的做法:VC++之控件之彩色编辑框
来源:百度文库 编辑:九乡新闻网 时间:2024/04/24 10:14:34
一、新建工程“彩色编辑框”
自定义类名
二、编辑对话框
三、添加新类、函数、变量
添加新类
添加新类的消息响应函数CtlColor
添加新类(CColorEdit)的变量m_color
添加新类(CColorEdit)的函数SetColorEdit()
a、于ColorEdit.h文件内添加函数SetColorEdit()的声明 双击m_color变量进入ColorEdit.h文件
b、添加函数SetColorEdit()的声明代码(红色部分)
class CColorEdit : public CEdit
{
public:
CColorEdit();
......:
: public:
void SetColorEdit(COLORREF color); //函数声明
COLORREF m_color; //定义变量/
virtual ~CColorEdit();
protected:
DECLARE_MESSAGE_MAP()
};
c、于CColorEdit.cpp内添加函数SetColorEdit()的定义代码(红色部分)
// CColorEdit message handlers
void CColorEdit::SetColorEdit(COLORREF color) //于CColorEdit类内添加定义
{
m_color=color;
}
添加编辑框变量m_edit1、m_edit2
a、于“彩色编辑框Dlg.h”内添加包含语句(红色部分):
#include "ColorEdit.h"
b、添加变量m_edit1、m_edit2
于“CCEdit_5Dlg::OnInitDialog()”(初始化函数)内添加取编辑框边框颜色代码(红色部分)
BOOL CCEdit_5Dlg::OnInitDialog()
{
CDialog::OnInitDialog();
ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
ASSERT(IDM_ABOUTBOX < 0xF000);
CMenu* pSysMenu = GetSystemMenu(FALSE);
if (pSysMenu != NULL)
{
CString strAboutMenu;
strAboutMenu.LoadString(IDS_ABOUTBOX);
if (!strAboutMenu.IsEmpty())
{
pSysMenu->AppendMenu(MF_SEPARATOR);
pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
}
}
SetIcon(m_hIcon, TRUE); // Set big icon
SetIcon(m_hIcon, FALSE); // Set small icon
// TODO: Add extra initialization here
m_edit1.SetColorEdit(RGB(255,0,0));
m_edit2.SetColorEdit(RGB(0,0,255));
return TRUE; // return TRUE unless you set the focus to a control
}
于“ColorEdit.cpp”文件内 添加ColorEdit类消息响应函数CtlColor()之相应代码(红色部分)
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
// TODO: Change any attributes of the DC here
CDC* dc = GetDC(); //获取画布对象
CRect rect;
GetClientRect(rect); //获取客户区域
rect.InflateRect(1,1,1,1);//将客户区域增大一个像素
CBrush brush (m_color);//创建画刷
dc->FrameRect(rect,&brush);//绘制边框
// TODO: Return a non-NULL brush if the parent's handler should not be called
return NULL;
}
四、编译
五、运行程序
六、所用函数说明
1、CDC::FrameRect函数声明
viod FrameRect(LPCRECT lpRect,CBrush*pBrush)
lpRect: 需进行描绘的边框之矩形,是一个指向RECT结构的指针。
pBrush: 使用刷子的句柄。
功能: 重绘一个长方形的边界