VC线程中如何使用多种对话框控件的变量?

声明下面函数后,在按钮函数中创建线程时引用了编辑框变量&m_Edit,之后下面响应的函数代码如下:staticUINTDG(LPVOIDpParam){CEdit*mye... 声明下面函数后,在按钮函数中创建线程时引用了编辑框变量&m_Edit,之后下面响应的函数代码如下:

static UINT DG(LPVOID pParam)
{
CEdit *myeidt=(CEdit *)pParam;//新线程终于得到了编辑框的控制权
for(int i = 0; i < 10; i++)
{
myeidt -> ReplaceSel ( "0\r\n" );//修改编辑框文本
GetDlgItem ( IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//这步出错了!!!
}
return NULL;
}

这什么GetDlgItem函数用不了?如何在这函数里使用多种控件变量?
展开
 我来答
437384801
2013-04-05 · TA获得超过1867个赞
知道小有建树答主
回答量:1299
采纳率:0%
帮助的人:551万
展开全部
当然了,因为这个谁全局函数。当然用不来哦了。
GetDlgItem ( IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//

等效于this->GetDlgItem ( IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//
封装了API函数:GetDlgItem (句柄, IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//
因此你可以设置个结构体按你的要求之类的
Struct Go{
CEdit *myeidt;

CWnd*d;
}
static UINT DG(LPVOID pParam)
{
Go*go=(Go*)pParam;//新线程终于得到了编辑框的控制权
for(int i = 0; i < 10; i++)
{
go->myeidt -> ReplaceSel ( "0\r\n" );//修改编辑框文本
go->d->GetDlgItem ( IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//
}
return NULL;
}
更多追问追答
追问
我在.cpp声明全局变量:
struct Go{ CEdit *myeidt; CWnd*d; };//

但下面的出错:
go -> myeidt -> ReplaceSel ( "0\r\n" );//这步崩溃了!
go->d->GetDlgItem ( IDD_MY_DIALOG ) -> SetWindowText ( "改变的标题" );//这步也崩溃了!
问:为什么有“go -> ”的两步崩溃了?
追答
你确定你传值正确;
那个你的myeidt 用CEdit*=GetDlgtem()传值
梦里花更香
2013-04-06 · 超过31用户采纳过TA的回答
知道答主
回答量:175
采纳率:0%
帮助的人:114万
展开全部
把this指针传进去
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式