mfc自绘按钮设置文本
时间: 2023-09-15 21:20:06 浏览: 170
要在MFC自绘按钮上设置文本,可以在按钮类派生类的 `OnPaint()` 函数中处理。下面是一个简单的示例:
1. 创建一个自定义按钮类,例如 `CMyButton`,并将其基类设置为 `CButton`。
2. 在该类的头文件中,声明一个 `CString` 类型的成员变量,用于存储按钮文本。
```
class CMyButton : public CButton
{
public:
CString m_strText;
//...
};
```
3. 在该类的实现文件中,覆盖 `OnPaint()` 函数,绘制按钮和文本。
```
void CMyButton::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CButton::OnPaint() for painting messages
// 绘制按钮背景
CRect rc;
GetClientRect(&rc);
dc.FillSolidRect(rc, RGB(255, 0, 0)); // 红色背景
// 绘制文本
dc.SetBkMode(TRANSPARENT); // 设置背景透明
dc.SetTextColor(RGB(255, 255, 255)); // 白色文本
dc.DrawText(m_strText, &rc, DT_SINGLELINE | DT_CENTER | DT_VCENTER);
}
```
4. 在你的对话框类或窗口类中创建 `CMyButton` 对象,并使用 `SetWindowText()` 函数设置按钮文本。
```
CMyButton m_btnMyButton;
m_btnMyButton.Create(_T("My Button"), WS_CHILD | WS_VISIBLE | BS_OWNERDRAW, CRect(10, 10, 100, 30), this, 1);
m_btnMyButton.m_strText = _T("My Button");
```
这样,当你运行程序时,你将看到一个自绘按钮,上面显示着 "My Button" 文本。
阅读全文