mfc动态生成多个按钮并在视图窗口下方显示
时间: 2023-11-01 22:07:40 浏览: 157
MFC中动态创建多个按钮
5星 · 资源好评率100%
在 MFC 中动态生成多个按钮并在视图窗口下方显示可以通过以下步骤实现:
1. 在你想要添加按钮的位置添加一个控件变量数组,例如 `CButton m_button[3];`
2. 在需要生成按钮的函数中,使用循环语句依次生成每个按钮,例如:
```
for(int i = 0; i < 3; i++)
{
m_button[i].Create("按钮 " + i, WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(10 + i * 100, 40, 100 + i * 100, 70), this, i + 1);
m_button[i].ShowWindow(SW_SHOW);
}
```
其中,`CRect(10 + i * 100, 40, 100 + i * 100, 70)` 表示每个按钮的位置和大小,`i + 1` 表示每个按钮的 ID。
3. 在视图窗口下方添加一个静态控件,例如 `CStatic m_static;`
4. 在视图窗口的 `OnSize()` 函数中调整静态控件的位置和大小,例如:
```
void CMyView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);
m_static.SetWindowPos(NULL, 0, cy - 30, cx, 30, SWP_NOZORDER);
}
```
其中,`cx` 和 `cy` 分别表示视图窗口的宽度和高度,`m_static.SetWindowPos()` 函数用于设置静态控件的位置和大小。
5. 在视图窗口的 `OnDraw()` 函数中使用 `CDC::DrawText()` 函数显示静态控件的文本,例如:
```
void CMyView::OnDraw(CDC* pDC)
{
CView::OnDraw(pDC);
m_static.DrawText("这是一个静态控件", -1, CRect(0, 0, 0, 0), DT_CENTER | DT_SINGLELINE | DT_VCENTER);
}
```
注意:需要在生成按钮之前调用 `AfxInitRichEdit()` 函数,否则可能会出现按钮无法显示的情况。
阅读全文