假设按钮1的消息函数如下:
C***View::Button1()
{
  int p;
  p=fun1();//函数处理,得到p值
  CRefDialog refDlg;
  refDlg.DoMomal();//弹出对话框,对话框中设有IDC_STATIC_SHOW控件
  
   ?//显示
}如果添加如下代码,出现异常。
CWnd* pWnd=GetDlgItem(IDC_STATIC_SHOW);
   CDC* pDC=pWnd->GetDC(); 
CString str;
str.Format("%d",p);
pDC->TextOut(0,0,str);
ReleaseDC(pDC);  
如何正确显示p的值?

解决方案 »

  1.   

    在CRefDialog设置一共用变量m_p, 在对话框的InitDialog中设置
      CRefDialog refDlg;
    refDlg.m_p = p;
      refDlg.DoMomal();//弹出对话框,对话框中设有IDC_STATIC_SHOW控件
      

  2.   

    To cheng_young:
        你的意思是:在对话框.h文件中定义public:int m_p; 然后重载InitDialog()函数
    并在其中添加:CWnd* pWnd=GetDlgItem(IDC_STATIC_SHOW);
        CDC* pDC=pWnd->GetDC(); 
    CString str;
    str.Format("%d",p);
    pDC->TextOut(0,0,str);
    ReleaseDC(pDC);  在按钮的消息函数中添加:
    CRefResult refDlg(this);
    refDlg.m_p=p;
        refDlg.DoModal();
    即可?
    我照以上做,还是没显示p的值在IDC_STATIC_SHOW控件中
      

  3.   

    DlgGetItem(StaticID)->SetWindowText(p)
    p是转换后的字符串
      

  4.   

    在CRefDialog通过MFC wizard为StaticID捆绑一个CString类型的变量m_p;  CRefDialog refDlg;
    refDlg.m_p = p;
      refDlg.DoMomal();//弹出对话框,对话框中设有IDC_STATIC_SHOW控件