环境VS2008,unicode。
1,绑定变量
在VC6中可以使用Add Variable添加绑定变量。在VS2008中没有绑定变量的设定。
我尝试使用以下方法绑定编辑框的文本变量,但不对。
1),放置编辑框控件“IDC_EDIT1”。使用"添加变量向导"添加变量m_text,类型为CString。
2),增加绑定代码
void Ctest8Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_text); //增加此行
}
3),使用MessageBox(m_text)显示编辑框的值。4),然后编译会报错。重新修改。请问此处是什么原因???Ctest8Dlg::Ctest8Dlg(CWnd* pParent /*=NULL*/)
: CDialog(Ctest8Dlg::IDD, pParent)
, m_text(0) //注销掉此行后编译可以通过
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
5),重新编译可以通过,但是MessageBox(m_text)不能显示编辑框的值。
请问是什么原因?VS2008要怎么绑定变量?2,绑定控件变量
在程序的对话框中绑定控件变量正确使用,但在DLL的对话框中相同方法绑定控件变量编译可以通过,执行错误。
我把一个列表框绑定变量m_list,然后使用以下代码即可。
void Ctest8Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_npclist.AddString(_T("北京"));
}
但是我在DLL的对话框中相同的方法使用编译没有问题,程序执行错误。请问是什么原因?
1,绑定变量
在VC6中可以使用Add Variable添加绑定变量。在VS2008中没有绑定变量的设定。
我尝试使用以下方法绑定编辑框的文本变量,但不对。
1),放置编辑框控件“IDC_EDIT1”。使用"添加变量向导"添加变量m_text,类型为CString。
2),增加绑定代码
void Ctest8Dlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT1, m_text); //增加此行
}
3),使用MessageBox(m_text)显示编辑框的值。4),然后编译会报错。重新修改。请问此处是什么原因???Ctest8Dlg::Ctest8Dlg(CWnd* pParent /*=NULL*/)
: CDialog(Ctest8Dlg::IDD, pParent)
, m_text(0) //注销掉此行后编译可以通过
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}
5),重新编译可以通过,但是MessageBox(m_text)不能显示编辑框的值。
请问是什么原因?VS2008要怎么绑定变量?2,绑定控件变量
在程序的对话框中绑定控件变量正确使用,但在DLL的对话框中相同方法绑定控件变量编译可以通过,执行错误。
我把一个列表框绑定变量m_list,然后使用以下代码即可。
void Ctest8Dlg::OnBnClickedButton1()
{
// TODO: 在此添加控件通知处理程序代码
m_npclist.AddString(_T("北京"));
}
但是我在DLL的对话框中相同的方法使用编译没有问题,程序执行错误。请问是什么原因?
解决方案 »
- vs2008远程调试
- 如何实现文件图标的修改
- error C2065: 'CCriticalSection' : undeclared identifier 在线等待
- 向数据库里保存图片的问题!
- 一个很弱的问题,vc和visual studio是什么关系,用哪个好?
- DCOM 本地调试通过,放到internet上后CoCreateInstanceEx报错The object exporter specified was not found(内附代码)
- 紧急:tab control控件的问题!!!
- 如何控制别人写的应用程序中的工具条呢?急急急!!!!!!!!!!
- 请问我在哪个网站能学到单线程的例子,谢谢相告!!!
- 水平中上的朋友帮忙看一下,几个类相互访问的问题
- jpeg解码出现色彩拖尾现象
- 问个分割的事情?
====================
没用过VS2008,但是VS2005中是有的,只不过操作方法变了而已,所以2008应该也是有的。
DDX_Text(pDX, IDC_EDIT1, m_text);
根本就没有跟控件联系起来。
VS2008是也是有的,你右键控件,在弹出的Wizard对话框中去掉Control variable即可关联非控件类型
将工程关闭后打开一下试试,实在不行就手动添加变量在CPP文件添加如下代码,(对照你自己的工程)
CDebugDlg::CDebugDlg(CWnd* pParent /*=NULL*/)
: CDialog(CDebugDlg::IDD, pParent)
, m_edit1(_T(""))
{}
void CDebugDlg::DoDataExchange(CDataExchange* pDX)
{
CDialog::DoDataExchange(pDX);
DDX_Text(pDX, IDC_EDIT3, m_edit1);
}
在.h中添加声明
CString m_edit1;
或者 CEdit m_edit1;
请问是什么原因?VS2008要怎么绑定变量?
-----------------------
在MessageBox输出之前,你需要调用UpdateData();然后MessageBox/AfxMessageBox输出
: CDialog(Ctest8Dlg::IDD, pParent)
, m_text(0) //注销掉此行后编译可以通过
{
m_hIcon = AfxGetApp()->LoadIcon(IDR_MAINFRAME);
}-----------------------
这里的代码m_text(0);这里你直接写个0是会有问题的,因为匹配的构造函数有多个,会出现ambiguous call错误,你可以写成m_text(_T(""))这样就可以了
谢谢。。原来是我在MessageBox(m_text)忘了加UpdateData();
应该是
UpdateData();
MessageBox(m_text);
在程序的对话框中绑定控件变量正确使用,但在DLL的对话框中相同方法绑定控件变量编译可以通过,执行错误。