有一对话框,上有三个CEdit控件,本想把其中输入的文本得到,然后添加到打印
程序中打印,奇怪的是在CRollView::PrintPageHeader中居然无法访问到包含文本的变量???为什么?!其中x1,x2,x3为声明在RollView.h中的Public CString x1,x2,x3;void CXinxiDlg::OnOK() 
{

CRollView rollview;
        char szText[128];
        GetDlgItemText(IDC_EDIT1,szText,sizeof(szText));
   rollview.x1=szText;        CRollView rollview;
        char szText[128];
        GetDlgItemText(IDC_EDIT2,szText,sizeof(szText));
   rollview.x2=szText;
 
        CRollView rollview;
        char szText[128];
        GetDlgItemText(IDC_EDIT3,szText,sizeof(szText));
   rollview.x3=szText; CDialog::OnOK();
}
void CRollView::PrintPageHeader(CDC* pDC,CPrintInfo* pInfo,CString& sHeader)
{     
    ... ...    char *pString1,*pString2,*pString3;
CXinxiDlg xinxi;
CString str1,str2,str3;
str1="设备名称:"+x1;
        str2="设备号码:"+x2;
str3="操作员: "+x3;

pString1=str1.GetBuffer(30);
pDC->TextOut(220,-160,pString1);
str1.ReleaseBuffer(30); pString2=str2.GetBuffer(30);
pDC->TextOut(220,-200,pString2);
str2.ReleaseBuffer(30); pString3=str3.GetBuffer(30);
pDC->TextOut(220,-240,pString3);
str3.ReleaseBuffer(30);}

解决方案 »

  1.   

    没想到我会看到这样的代码,还是建议你去看看C++和VC。对不起,我没有别的意思,你也不要生气,你的代码中的问题真的很有意思。
      

  2.   

    CRollView rollview;  //没有赋值
            char szText[128];
            GetDlgItemText(IDC_EDIT1,szText,sizeof(szText));
       rollview.x1=szText;        CRollView rollview;  //重复
            char szText[128];
            GetDlgItemText(IDC_EDIT2,szText,sizeof(szText));
       rollview.x2=szText;
     
            CRollView rollview; //重复
            char szText[128];
            GetDlgItemText(IDC_EDIT3,szText,sizeof(szText));
       rollview.x3=szText;