vc的MFC中关于setwindowtext的一个简单问题!

来源:百度知道 编辑:UC知道 时间:2024/07/04 10:44:48
在MFC中,我在一个线程中改变dlg里面的CEdit编辑框的内容,应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···
请大哥帮帮我啊··这个问题困扰我很久都没有解决···跪地感谢了··
不是这个意思,不知道怎么在线程中(dlg外面)改变dlg里面的CEdit编辑框的内容····我应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···
可以用句柄的方法?怎样获得编辑框控件的句柄?怎样修改呢?
可以用指针的方法?怎样获得编辑框控件的指针,怎样修改呢内容?

要这样你必须创建一个非模态对话框,而不是模态对话框。这个过程比较麻烦,还要考虑一些细节。下面的步骤可供你参考,写得不全面(假设你的工程名为Test,对话框的ID为IDD_DIALOG1,其类名为CMyDlg,编辑框的ID为IDC_EDIT1):
1、在TestView.h的开头包含MyDlg.h,然后为其添加一个CMyDlg*类型的变量pModallessDlg,在CTestView的构造函数中将其初始化:pModallessDlg = NULL;
2、在需要弹出对话框的地方添加如下代码:
if (!pModallessDlg)
{
pModallessDlg = new CMyDlg;
pModallessDlg->Create(IDD_DIALOG1);
pModallessDlg->GetDlgItem(IDC_EDIT1)->SetWindowText("编辑框的内容");
pModallessDlg->ShowWindow(SW_SHOW);
}
else
pModallessDlg->SetActiveWindow();
这个仅仅是测试一下改变编辑框文本这个功能,没有处理对话框的消息,要处理对话框的消息必需重载它的OnOK、OnCancel等函数,并向视图类发送消息。在视图类中处理这些消息时要记得消毁对话框并delete pModallessDlg。

CEdit编辑框 设置一个控制变量。假如你现在的类为
caaaa.h
“我在dlg外面不知道怎么获取这个dlg里面的CEdit··· ”
你在另一个Dialog(cbbb.h)类里
caaa dlg;
cstring str = dlg.cedit;
str就是cedit里的字符串的值;

线程操作窗体之需要获得相应的句柄就OK了,比如线程 CreateThread 是可以传递一个参数的,你可以将 this 这个指针传递进来,然后 ((CDialog*)lpParameter)-> 就可以获得到相应的资源,或者用标准的AP