CEdit没有SetBkColor 成员
时间: 2023-09-03 13:04:47 浏览: 211
### 回答1:
CEdit 是 MFC(Microsoft Foundation Class)库中的一个类,用于创建可编辑的文本框控件。CEdit 类确实没有 SetBkColor() 成员函数,因为它继承自 CWnd 类,而不是 CButton 类。
如果你想改变 CEdit 的背景颜色,可以使用 CWnd 类的 SetBkColor() 成员函数。这个函数接受一个 COLORREF 类型的参数,可以设置窗口的背景颜色。你可以使用 CEdit 类的 GetSafeHwnd() 函数来获取 CEdit 控件的句柄,然后将句柄传递给 SetBkColor() 函数来设置背景颜色,示例代码如下:
```cpp
// 假设 pEdit 是 CEdit 对象指针
pEdit->GetSafeHwnd(); // 获取 CEdit 控件的句柄
pEdit->SetBkColor(RGB(255, 0, 0)); // 设置背景颜色为红色
```
这样就可以将 CEdit 控件的背景颜色设置为红色了。需要注意的是,这种方式只能设置 CEdit 控件的背景颜色,而无法设置文本的前景颜色。如果需要同时设置前景和背景颜色,可以考虑使用 CEdit 控件的 SetTextColor() 和 SetBkColor() 函数组合使用。
### 回答2:
CEdit没有SetBkColor成员函数,但是我们可以通过其他方法来改变CEdit的背景颜色。
一种常见的方法是使用CWnd类的SetBackgroundColor函数。可以通过以下方式在CEdit中设置背景颜色:
1. 获取CEdit的HWND句柄:
HWND hwndEdit = m_edit.GetSafeHwnd();
2. 使用SetBackgroundColor函数设置背景颜色:
CWnd* pWndEdit = CWnd::FromHandle(hwndEdit);
pWndEdit->SetBackgroundColor(RGB(255, 0, 0)); //设置为红色背景
另外,也可以在CEdit对象的创建时设置背景颜色。可以在CEdit对象的OnInitDialog()函数中设置:
BOOL CMyDialog::OnInitDialog()
{
// ...
CEdit* pEdit = (CEdit*)GetDlgItem(IDC_EDIT1);
pEdit->SetBackgroundColor(RGB(255, 0, 0)); //设置为红色背景
// ...
}
以上是两种在CEdit中设置背景颜色的方法,尽管CEdit本身没有SetBkColor成员函数,但我们可以通过这些方法来达到相同的效果。
阅读全文