ColorEdit
来源:互联网 发布:淘宝一年清多少分 编辑:程序博客网 时间:2024/04/29 22:09
//ColorEdit.h
#ifndef CCOLOREDIT_H_
#define CCOLOREDIT_H_
#pragma once
#include "afxwin.h"
#define TRANS_BACK -1
class CColorEdit :
public CEdit
{
public:
CColorEdit(void);
~CColorEdit(void);
private:
COLORREF m_TextColor;
COLORREF m_BackColor;
CBrush m_Brush;
// Operations
public:
void SetTextColor(COLORREF col) { m_TextColor = col;
UpdateCtrl(); }
void SetBackColor(COLORREF col) { m_BackColor = col;
UpdateCtrl(); }
private:
void UpdateCtrl();
protected:
//{{AFX_MSG(CEditTrans)
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
afx_msg void OnUpdate();
afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
afx_msg void OnKillfocus();
//}}AFX_MSG
DECLARE_MESSAGE_MAP()
};
#endif// CCOLOREDIT_H_
//ColorEdit.cpp
#include "StdAfx.h"
#include "ColorEdit.h"
CColorEdit::CColorEdit(void)
{
m_TextColor = RGB(0, 0, 0);
m_BackColor = TRANS_BACK;
}
CColorEdit::~CColorEdit(void)
{
}
BEGIN_MESSAGE_MAP(CColorEdit,CEdit)
//{{AFX_MSG_MAP(CColorEdit)
ON_WM_CTLCOLOR_REFLECT()
ON_CONTROL_REFLECT(EN_UPDATE,&OnUpdate)
ON_WM_LBUTTONDOWN()
ON_CONTROL_REFLECT(EN_KILLFOCUS,&OnKillfocus)
//}}AFX_MSG_MAP
END_MESSAGE_MAP()
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
m_Brush.DeleteObject();
if (m_BackColor == TRANS_BACK)
{
m_Brush.CreateStockObject(HOLLOW_BRUSH);
pDC->SetBkMode(TRANSPARENT);
}
else
{
m_Brush.CreateSolidBrush(m_BackColor);
pDC->SetBkColor(m_BackColor);
}
pDC->SetTextColor(m_TextColor);
LOGBRUSH lb1;
lb1.lbStyle = BS_HOLLOW;
lb1.lbColor = RGB(192,224,255);
HBRUSH hBrush1 = CreateBrushIndirect(&lb1);
return hBrush1;
}
void CColorEdit::OnKillfocus()
{
UpdateCtrl();
}
void CColorEdit::OnUpdate()
{
UpdateCtrl();
}
void CColorEdit::OnLButtonDown(UINT nFlags, CPoint point)
{
UpdateCtrl();
CEdit::OnLButtonDown(nFlags, point);
}
void CColorEdit::UpdateCtrl()
{
CWnd* pParent = GetParent();
CRect rect;
GetWindowRect(rect);
pParent->ScreenToClient(rect);
rect.DeflateRect(2, 2);
pParent->InvalidateRect(rect, FALSE);
}
- ColorEdit
- devexpress datagrid 与ColorEdit 如何存入数据库
- java 多态性 Overload和Override的区别
- 如何静心?
- 数据页面栏
- 第一次
- 从零开始学习jQuery (二) 万能的选择器
- ColorEdit
- 从零开始学习jQuery (三) 管理jQuery包装集
- Microsoft SQL Server 实例上运行的进程的相关信息
- ASP.NET 如何动态修改 Header 属性如添加 Meta 标签 keywords description!
- 从零开始学习jQuery (四) 使用jQuery操作元素的属性与样式
- 使用bcp,循环将本地txt文本导入远程sqlserver中
- SQLite 不支持的 SQL 特性
- 从零开始学习jQuery (五) 事件与事件对象
- APACHE 2.2.9+TOMCAT6.0.14配置负载均衡 亲自实践版