求助:用的是vc++的MFC,总是报错illegal use of this type as an expression
void CMy09990171View::OnPolyitem()
{
CPolyDlg polydlg;
polydlg.DoModal();
x1=CPolyDlg.m_x1;
y1=CPolyDlg.m_y1;
Invalidate();
}
CPolyDlg是对话框中关联的类。为什么总是报错 error C2275: 'CPolyDlg' : illegal use of this type as an expression
[解决办法]
首先,CPolyDlg polydlg定义为局部变量,是不能产生窗口的。
正确的方法 在CMy09990171View 定义:CPolyDlg polydlg;
其次:x1=CPolyDlg.m_x1;
y1=CPolyDlg.m_y1;
是错误的。应该是:
x1=polydlg.m_x1;
y1=polydlg.m_y1;
[解决办法]
void CMy09990171View::OnPolyitem()
{
CPolyDlg polydlg;
polydlg.DoModal();
x1=polydlg.m_x1; //看这里
y1=polydlg.m_y1; //看这里
Invalidate();
}
这样才可以吧。
另外,如果m_x1和m_y1是继承CWnd的控件话,会报错的,因为这CWnd只有在阻塞的DoModal()情况下有效果
反之,如果是其他变量也可以的。