如何设置静态文本框的文字和背景颜色?

kokosoft 2004-07-13 02:10:52
请问,如何设置静态文本框的文字和背景颜色?
...全文
1631 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
syy64 2004-07-13
  • 打赏
  • 举报
回复
用SetDialogBKColor函数。
duff 2004-07-13
  • 打赏
  • 举报
回复
class CStatic : public CWnd
{
DECLARE_DYNAMIC(CStatic)

// Constructors
public:
CStatic();
BOOL Create(LPCTSTR lpszText, DWORD dwStyle,
const RECT& rect, CWnd* pParentWnd, UINT nID = 0xffff);

// Operations
HICON SetIcon(HICON hIcon);
HICON GetIcon() const;

#if (WINVER >= 0x400)
HENHMETAFILE SetEnhMetaFile(HENHMETAFILE hMetaFile);
HENHMETAFILE GetEnhMetaFile() const;
HBITMAP SetBitmap(HBITMAP hBitmap);
HBITMAP GetBitmap() const;
HCURSOR SetCursor(HCURSOR hCursor);
HCURSOR GetCursor();
#endif

// Implementation
public:
virtual ~CStatic();
};
kokosoft 2004-07-13
  • 打赏
  • 举报
回复
yaolan1999(可可猫) :
写一个CStatic的扩展类,重绘静态文本框又是什么意思呢?
kokosoft 2004-07-13
  • 打赏
  • 举报
回复
if(pWnd->GetDlgCtrlID() == IDC_EDIT_LOG)
{
static HBRUSH hbrEdit = ::CreateSolidBrush(RGB(255, 255, 255));
pDC->SetBkColor(RGB(255, 255, 255));
pDC->SetTextColor(RGB(0, 0, 255));
return hbrEdit;
}

请问其中pWnd和pDC的值是哪儿赋的呢?
kokosoft 2004-07-13
  • 打赏
  • 举报
回复
if(pWnd->GetDlgCtrlID() == IDC_EDIT_LOG)
{
static HBRUSH hbrEdit = ::CreateSolidBrush(RGB(255, 255, 255));
pDC->SetBkColor(RGB(255, 255, 255));
pDC->SetTextColor(RGB(0, 0, 255));
return hbrEdit;
}

请问其中pWnd和pDC的值是哪儿赋的呢?


magicchen 2004-07-13
  • 打赏
  • 举报
回复
靠,都被你们说完了,他们说的都行
yaolan1999 2004-07-13
  • 打赏
  • 举报
回复
写一个CStatic的扩展类,重绘静态文本框.然后改静态文本框的ID,使之不是IDC_STATIC,再让它的基类为这个扩展类即可.
gabrielnystrom 2004-07-13
  • 打赏
  • 举报
回复
楼上的方法可行
windyloft 2004-07-13
  • 打赏
  • 举报
回复
HBRUSH CLogToolDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);

// set edit properities
if(pWnd->GetDlgCtrlID() == IDC_EDIT_LOG)
{
static HBRUSH hbrEdit = ::CreateSolidBrush(RGB(255, 255, 255));
pDC->SetBkColor(RGB(255, 255, 255));
pDC->SetTextColor(RGB(0, 0, 255));
return hbrEdit;
}

return hbr;
}
lixiaosan 2004-07-13
  • 打赏
  • 举报
回复
给对话框添加WM_CTLCOLOR消息
lixiaosan 2004-07-13
  • 打赏
  • 举报
回复
HBRUSH CTest6Dlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{

HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


switch(nCtlColor)
{
case CTLCOLOR_STATIC:
if( pWnd->GetSafeHwnd() == GetDlgItem(IDC_STATIC2)->GetSafeHwnd() )
{
static HBRUSH hbrEdit = ::CreateSolidBrush( RGB(0, 255, 0) );
pDC->SetBkColor( RGB(255, 0, 0) );
pDC->SetTextColor( RGB(0, 255, 0) );
return hbrEdit;
}
}

// TODO: Return a different brush if the default is not desired
return hbr;
}

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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