VC++中用GetDlgItemText()提取控件数据,并将其保存成txt文件时遇到问题,本人初用VC++求高手帮忙解答

2025-03-11 06:25:16
推荐回答(3个)
回答1:

代码本身没有什么严重的问题。

建议你进行以下几个尝试:

  1. 将line变量的声明放在for语句之外,现在这样声明80个变量很耗费资源

  2. mFile.Write最好也放到for之外,拼接了80个字符串之后一起写入

  3. 将定制器关闭(注销SetTimer行),将代码复制到一个按钮响应函数中,看看实现有没有问题

    CString SaveText,line=_T("");
    int i;         
    for(i=0;i<80;i++)
    {
        GetDlgItemText(IDC_LBL_AD1+i, SaveText);
        //SaveText.Format("%d ",SaveText[i]);
        line+=SaveText+_T("\r\n");
    }
    mFile.Write(line,line.GetLenth());

回答2:

TCHAR tchTemp[BUF_LENTH_1024]={0};
GetDlgItemText(IDIDC_LBL_AD1+i,chTemp,BUF_LENTH_1024);
CString SaveText=CString(tchTemp);
ZeroMemory(tchTemp,BUF_LENTH_1024);
SaveText的值就是6800,你可以调试看看。

回答3:

将控件的ID定义成一个整形数组,如:

UINT ItemID[] = {IDC_LBL_AD1, IDC_LBL_AD2,IDC_LBL_AD3, ..............}

然后遍历数据 ItemID[],分别使用GetDlgItemText()里面的值,如果确定都是整数,用GetDlgItemInt也行。