BOOL san::OnInitDialog() { CDialogEx::OnInitDialog(); // 获取控件句柄 //CWnd* pStaticText = GetDlgItem(IDC_STATIC4); // 设置控件文本 //CString strText = _T(""); /*for (int num = 0; num < 7; num++) { CString str_num; str_num.Format(_T("%7d"), C彩票选号器MDlg::y[num]); strText += str_num; }*/ //CString strText = str_nu; CStatic* pStaticText1 = (CStatic*)GetDlgItem(IDC_STATIC4); // 获取静态文本控件指针 pStaticText1->SetWindowText(erd::strText1); CStatic* pStaticText1 = (CStatic*)GetDlgItem(IDC_STATIC5); // 获取静态文本控件指针 pStaticText1->SetWindowText(erd::strText2); return TRUE; }修改这段报错的代码
时间: 2024-03-22 16:42:00 浏览: 14
在该段代码中,有两个地方出现了重复定义变量的问题:
1. 在设置 IDC_STATIC4 控件文本时,变量 pStaticText1 已经定义,但在设置 IDC_STATIC5 控件文本时,又定义了一个同名变量 pStaticText1。
解决方法:将第二个变量重命名为 pStaticText2 或其他不同的变量名。
2. 在设置 IDC_STATIC4 控件文本时,使用了一个未定义的字符串变量 strText1。
解决方法:将 strText1 定义并初始化,或者使用其他已经定义的字符串变量。修改后的代码如下:
```c++
BOOL san::OnInitDialog() {
CDialogEx::OnInitDialog();
CString strText1 = _T("some text 1");
CString strText2 = _T("some text 2");
CStatic* pStaticText1 = (CStatic*)GetDlgItem(IDC_STATIC4);
pStaticText1->SetWindowText(strText1);
CStatic* pStaticText2 = (CStatic*)GetDlgItem(IDC_STATIC5);
pStaticText2->SetWindowText(strText2);
return TRUE;
}
```
相关问题
error: unknown type name 'bool' bool re_bool; /* value of bool */
出现 `unknown type name 'bool'` 的错误提示意味着编译器无法找到 `bool` 类型的定义。
在 C 语言中,`bool` 类型是 C99 标准引入的布尔类型,用于表示真(true)或假(false)。然而,在一些旧的 C 编译器中,并不支持 `bool` 类型。
要解决此问题,您可以尝试以下两种方法之一:
1. 使用 `int` 类型代替 `bool` 类型:在较旧的 C 编译器中,可以使用 `int` 类型来模拟布尔类型。通常,0 表示假(false),非零值表示真(true)。
```c
int re_bool; // value of bool
```
2. 包含 `<stdbool.h>` 头文件:在支持 C99 标准的编译器中,可以包含 `<stdbool.h>` 头文件来定义 `bool` 类型。
```c
#include <stdbool.h>
bool re_bool; // value of bool
```
请根据您的编译器和需求选择适合的方法。希望这可以帮助您解决问题。如果还有其他疑问,请随时提问。
BOOL CMyFormView::OnInitDialog() 没有这个函数
非常抱歉,我的回答有误。CFormView 没有 OnInitDialog 函数,它是 CDialog 类的成员函数。我混淆了两个不同的类。
在 CFormView 中,您可以在 OnInitialUpdate 函数中设置对话框的大小和位置。下面是示例代码:
```
void CMyFormView::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
// 获取视图的客户区矩形
CRect rcClient;
GetClientRect(&rcClient);
// 获取对话框的客户区矩形
CRect rcDialog;
GetDlgItem(IDC_STATIC)->GetWindowRect(&rcDialog);
ScreenToClient(&rcDialog);
// 计算对话框的位置和大小
int cx = rcClient.Width() - rcDialog.Width();
int cy = rcClient.Height() - rcDialog.Height();
rcDialog.OffsetRect(cx / 2, cy / 2);
rcDialog.right += cx;
rcDialog.bottom += cy;
// 设置对话框的位置和大小
GetDlgItem(IDC_STATIC)->MoveWindow(&rcDialog);
}
```
在上面的示例代码中,IDC_STATIC 是对话框中一个控件的 ID,您可以根据实际情况修改。
希望这次回答可以解决您的问题,如果还有疑问,请随时提出。