如何改变Read only状态下的文本框的背影颜色?

居易锦风 2007-08-02 11:30:45
如何改变Read only状态下的文本框的背影颜色?
就是当文本框的Read only为true时(内容不可修改)
如何修改它的背景颜色?
...全文
282 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
jasonshark 2007-08-02
  • 打赏
  • 举报
回复
在OnCtlColor里判断
pWnd->GetDlgCtrlID() == IDC_EDIT1 && nCtlColor == CTLCOLOR_STATIC
就行了
1982pc 2007-08-02
  • 打赏
  • 举报
回复
重载自己写,
******************ColorEdit.CPP****************

#include "stdafx.h"
#include "ColorEdit.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/******************************************************************************
* 函数名称: CColorStatic
* 功能描述: 构造函数,初始化成员变量
* 访问的表: 无
* 修改的表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
CColorEdit::CColorEdit()
{
// 初始化控件的背景色为窗体的肤色
// m_crBkColor = ::GetSysColor(COLOR_3DFACE);
// 初始化控件的背景色为白色
m_crBkColor = RGB(255, 255, 255);
// 初始化控件的字体颜色为黑色
m_crTextColor = RGB(0, 0, 0);
m_brBkgnd.CreateSolidBrush(m_crBkColor); // Creating the Brush Color For the Edit Box Background
}

/******************************************************************************
* 函数名称: ~CColorStatic
* 功能描述: 析构函数,负责回收工作
* 访问的表: 无
* 修改的表: 无
* 输入参数: 无
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
CColorEdit::~CColorEdit()
{
}

/******************************************************************************
* MFC消息映射
******************************************************************************/
BEGIN_MESSAGE_MAP(CColorEdit, CEdit)
//{{AFX_MSG_MAP(CColorEdit)
ON_WM_CTLCOLOR_REFLECT()
//}}AFX_MSG_MAP
END_MESSAGE_MAP()

/******************************************************************************
* 函数名称: SetTextColor
* 功能描述: 设置字体颜色
* 访问的表: 无
* 修改的表: 无
* 输入参数: COLORREF crColor:字体颜色值
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
void CColorEdit::SetTextColor(COLORREF crColor)
{
m_crTextColor = crColor; // Passing the value passed by the dialog to the member varaible for Text Color
RedrawWindow();
}

/******************************************************************************
* 函数名称: SetBkColor
* 功能描述: 设置背景色
* 访问的表: 无
* 修改的表: 无
* 输入参数: COLORREF crColor:背景颜色值
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
void CColorEdit::SetBkColor(COLORREF crColor)
{
m_crBkColor = crColor; // Passing the value passed by the dialog to the member varaible for Backgound Color
m_brBkgnd.DeleteObject(); // Deleting any Previous Brush Colors if any existed.
m_brBkgnd.CreateSolidBrush(crColor); // Creating the Brush Color For the Edit Box Background
RedrawWindow();
}

/******************************************************************************
* 函数名称: CtlColor
* 功能描述: 重画函数
* 访问的表: 无
* 修改的表: 无
* 输入参数: CDC* pDC:设备对象指针;UINT nCtlColor:颜色种类数量
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
HBRUSH CColorEdit::CtlColor(CDC* pDC, UINT nCtlColor)
{
HBRUSH hbr;
hbr = (HBRUSH)m_brBkgnd; // Passing a Handle to the Brush
pDC->SetBkColor(m_crBkColor); // Setting the Color of the Text Background to the one passed by the Dialog
pDC->SetTextColor(m_crTextColor); // Setting the Text Color to the one Passed by the Dialog

if (nCtlColor) // To get rid of compiler warning
nCtlColor += 0;

return hbr;
}

/******************************************************************************
* 函数名称: SetReadOnly
* 功能描述: 重载函数,设置文本框的属性为只读
* 访问的表: 无
* 修改的表: 无
* 输入参数: BOOL flag:只读标志,TRUE只读,FALSE可写
* 输出参数: 无
* 返 回 值: 无
* 其它说明: 无
* 修改日期 版本号 修改人 修改内容
* ---------------------------------------------------------
* 2006/11/30 V1.0 Dragon Cai 创建该函数
******************************************************************************/
BOOL CColorEdit::SetReadOnly(BOOL flag)
{
if (flag == TRUE)
SetBkColor(RGB(255, 255, 255));
else
SetBkColor(RGB(255, 255, 255));

return CEdit::SetReadOnly(flag);
}
******************ColorEdit.CPP****************


******************ColorEdit.H****************
#if !defined(AFX_ColorEdit_H__E889B47D_AF6B_4066_B055_967508314A88__INCLUDED_)
#define AFX_ColorEdit_H__E889B47D_AF6B_4066_B055_967508314A88__INCLUDED_

#if _MSC_VER > 1000
#pragma once
#endif // _MSC_VER > 1000

/******************************************************************************
* 类定义
******************************************************************************/
class CColorEdit : public CEdit
{

public:
CColorEdit();
virtual ~CColorEdit();
//{{AFX_VIRTUAL(CColorEdit)
//}}AFX_VIRTUAL

// 设置背景色
void SetBkColor(COLORREF crColor);
// 设置字体颜色
void SetTextColor(COLORREF crColor);
// 设置为只读
BOOL SetReadOnly(BOOL flag = TRUE);


protected:
//{{AFX_MSG(CColorEdit)
// This Function Gets Called Every Time Your Window Gets Redrawn.
afx_msg HBRUSH CtlColor(CDC* pDC, UINT nCtlColor);
//}}AFX_MSG

DECLARE_MESSAGE_MAP()

private:
CBrush m_brBkgnd; // Holds Brush Color for the Edit Box
COLORREF m_crBkColor; // Holds the Background Color for the Text
COLORREF m_crTextColor; // Holds the Color for the Text
};

//{{AFX_INSERT_LOCATION}}

#endif
ppcat_001 2007-08-02
  • 打赏
  • 举报
回复
自绘?
内容概要:本文围绕间歇性光伏出力条件下48V直流母线电压的稳定控制与储能系统双向充放电的闭环调控体系展开深入研究,系统探讨了光伏阵列非线性输出特性与锂离子电池储能系统在离网直流微网中的能量均衡建模方法及分层控制策略。通过Simulink平台构建完整的光伏储能直流系统仿真模型,涵盖PV阵列、Boost DC-DC变换器、负载、双向DC-DC变换器及电池系统等关键组件,实现了最大功率点跟踪(MPPT)与储能系统的协同控制,有效应对光照波动引起的功率供需失衡问题。研究采用双PI闭环控制、模型预测控制(MPC)等多种先进控制算法,显著提升了系统的动态响应速度与直流母线电压稳定性,并实现了储能系统在削峰填谷中的优化运行,对于增强离网微网的供电可靠性与能源利用效率具有重要理论价值和工程意义。; 适合人群:具备电力电子、新能源系统或自动控制等相关领域基础知识的研究生、科研人员,以及从事微电网、光伏储能系统开发与设计的工程技术人员。; 使用场景及目标:① 构建适用于离网场景的光伏储能系统Simulink仿真模型;② 实现间歇性光照条件下48V直流母线电压的精确稳定控制与储能系统的双向能量管理;③ 研究MPPT控制与储能充放电策略之间的协同机制,提升系统在复杂工况下的运行稳定性与鲁棒性;④ 为微电网能量管理系统的设计、优化与性能验证提供可靠的理论依据和技术支撑。; 阅读建议:建议结合文中所述的Simulink仿真模型与控制算法,亲自动手实践建模与仿真全过程,重点关注MPPT控制策略的实现、双向DC-DC变换器的设计以及电压外环与电流内环构成的双闭环控制结构的参数整定,并通过设置不同的光照强度变化曲线和负载投切工况,全面测试和评估系统的动态响应能力与控制性能。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧