在实际的应用中,可以用WM_CTLCOLOR 消息改变mfc中控件的颜色,比如现在就来改变一个static text控件的
字体、字体大小、字体颜色和背景色。
例如对话框的类为CTestDlg.
1. 在对话框的类中添加两个变量.
方法:在classview选项卡中,选择CTestDlg,右键,add member variable.
CBrush m_brush;
CFont m_font;
<wbr></wbr>
在OnInitDialog()函数中添加:
// TODO: ……
m_font.CreatePointFont(150,"华文行楷");//代表15号字体,华文行楷
m_brush.CreateSolidBrush(RGB(0,255,0));//画刷为绿色
<wbr></wbr>
2 添加WM_CTLCOLOR 消息响应,添加的方法为:
add windows message handler->WM_CTLCOLOR->add and edit
<wbr></wbr>
<wbr></wbr>
3 在HBRUSH CTestDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor) 函数中的todo后添加代码,即:
,
HBRUSH CYourDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)
{
HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);
<wbr><span style="font-size:18px">// TODO: Change any attributes of the DC here<br></span><wbr><span style="font-size:18px">if (pWnd->GetDlgCtrlID() == IDC_STATICText)<br></span><wbr><span style="font-size:18px">{</span></wbr></wbr></wbr>
<wbr><span style="font-size:18px">pDC->SetBkColor(RGB(0,255,0));//背景色为绿色<br></span><wbr><wbr><span style="font-size:18px">pDC->SetTextColor(RGB(255, 0, 0));//文字为红色<br></span><wbr><wbr><span style="font-size:18px">pDC->SelectObject(&m_font);//文字为15号字体,华文行楷<br></span><wbr><span style="font-size:18px">return m_brush;<br></span><wbr><span style="font-size:18px">}</span></wbr></wbr></wbr></wbr></wbr></wbr></wbr>
<wbr><span style="font-size:18px">// TODO: Return a different brush if the default is not desired<br></span><wbr><span style="font-size:18px">return hbr;</span></wbr></wbr>
}
<wbr><wbr><p><wbr></wbr></p>
<p><span style="font-size:18px">这样就可以改变static text的背景色、字体、字体大小和字体颜色了。</span></p>
</wbr></wbr>
分享到:
相关推荐
// 设置编辑框控件的背景色和字体颜色 ((CEdit*)pWnd)->SetBackgroundColor(bgColor, FALSE); ((CEdit*)pWnd)->SetWindowTextW(_T("")); // 清空文本后再设置,以更新字体颜色 ((CEdit*)pWnd)->SetWindowTextW...
然而,如果你希望在用户点击STATIC TEXT控件时触发某些行为,可以通过自定义控件和处理消息映射来实现这一功能。下面我们将详细探讨如何在MFC中实现这一需求。 首先,你需要创建一个新的类来继承自CStatic,这个类...
为了允许用户设置背景色和字体颜色,我们需要在类中添加这些属性,并提供对应的设置方法: ```cpp // 在CMyStatic类中添加成员变量 COLORREF m_BackgroundColor; COLORREF m_TextColor; CFont m_Font; // ...
现在,当创建或使用`MyButton`控件时,它将会根据我们在`OnDrawItem`中定义的方式进行绘制,实现了自定义的字体、字体大小、背景色和背景图片。 以上就是MFC中修改Button控件的方法,通过派生和重载`OnDrawItem`...
在该函数中,你可以根据控件类型设置不同的背景色和字体颜色。 例如,如果你希望对话框、组框、静态文本、复选框、禁用的编辑框、禁用的组合框和单选按钮的背景色变为特定颜色,可以这样编写代码: ```cpp HBRUSH ...
总之,定制MFC的CListCtrl头控件涉及到对Windows API的调用,包括设置控件样式、颜色和字体等。在修改这些属性时,一定要注意资源的正确管理和释放,防止内存泄露。通过学习和分析提供的示例代码,我们可以更好地...
"对static控件字体大小及颜色的设置"是UI设计中的一个重要环节,它涉及到如何自定义这些控件的视觉效果以满足用户的交互体验。在本篇文章中,我们将深入探讨如何实现这一功能。 首先,我们来看`ColorStaticST.cpp`...
这里,我们关注的是对CEdit类的派生和修改,以实现自定义背景色、字体以及自动控制显示行数的功能。CEdit是MFC中用于创建和管理编辑框(文本输入控件)的类,它继承自CWnd类。 首先,我们需要创建一个派生自CEdit的...
本文将详细讨论如何在MFC中实现按钮控件背景色的改变。 首先,我们要了解MFC中的按钮控件通常是CButton类的实例。CButton是MFC对Windows API中的BUTTON类的封装,提供了丰富的功能,包括设置文字、图标以及响应各种...
本文将详细介绍如何在MFC应用程序中设置对话框的背景颜色以及如何设置控件的字体颜色和背景颜色。 #### 1. 设置对话框背景颜色 要为对话框设置背景颜色,可以通过重写`OnCtlColor`函数实现。首先,需要创建一个`...
本教程将深入探讨如何在MFC中自定义CListCtrl的字体、颜色以及背景,使其更具个性化和可读性。 首先,了解CListCtrl的基本结构。CListCtrl通常包含多列,每列可以有不同的标题,数据行在各列中显示不同的信息。为了...
本文将详细介绍如何在MFC应用程序中设置窗口及其中各控件的颜色和字体。 #### 一、设置背景颜色 在MFC中,可以通过创建一个`CBrush`对象来为控件设置背景颜色。下面是一个简单的示例: ```cpp private: CBrush m...
### MFC中窗体及控件背景色的设置方法 #### 概述 在MFC(Microsoft Foundation Classes)中,自定义窗体及控件的背景色是一项常见但实用的功能。这不仅可以提升用户界面的美观度,还可以提高用户体验。本文将详细...
默认情况下,`CDialog::OnCtlColor`函数会返回一个用于绘制控件背景的白色画刷,但在这里,因为我们已经设置了背景颜色,所以可以直接返回`NULL`,让系统使用默认的画刷: ```cpp return NULL; ``` 完成上述步骤后...
总结来说,通过MFC的CTabCtrl控件的派生和重绘技术,我们可以轻松实现自定义的背景颜色、字体颜色以及突出显示当前选中的tab。这个过程涉及到了Windows消息处理、图形绘制和控件的动态更新等多方面的知识,有助于...
在Windows编程中,MFC(Microsoft Foundation Classes)库为我们提供了丰富的控件,其中包括CButton类,用于创建和操作按钮。然而,系统默认的CButton控件仅提供了基本样式,如果我们想要自定义其字体颜色和背景颜色...
在Windows API或MFC(Microsoft Foundation Classes)框架中,Static Text控件是通过CreateWindow函数或CStatic类创建的。它的主要属性可以通过WM_SETTEXT消息来改变,用于设置控件显示的文本内容。 要让Static ...
在这个主题中,我们将深入探讨如何设置按钮的透明度、背景色、文本以及控制按钮的显示状态。 首先,让我们了解如何设置按钮的透明度。在MFC中,可以使用CButton类提供的方法来调整按钮的外观。为了使按钮透明,通常...
在MFC框架中,处理用户界面的各种交互事件是非常重要的,其中就包括对静态文本(`STATIC TEXT`)控件的支持。本文档详细介绍了如何通过自定义静态文本控件来实现鼠标事件处理,特别是鼠标移动(`MouseMove`)与鼠标...
本教程将详细解释如何为CListBox控件添加自定义背景色和字体颜色,同时介绍如何通过继承和重载函数来实现这一功能。 首先,为了改变CListBox控件的背景色和字体颜色,我们需要创建一个新的类,该类继承自CListBox,...