vc的MFC中关于setwindowtext的一个简单问题!
在MFC中,我在一个线程中改变dlg里面的CEdit编辑框的内容,应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···请大哥帮帮我啊··这个问...
在MFC中,我在一个线程中改变dlg里面的CEdit编辑框的内容,应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···
请大哥帮帮我啊··这个问题困扰我很久都没有解决···跪地感谢了··
不是这个意思,不知道怎么在线程中(dlg外面)改变dlg里面的CEdit编辑框的内容····我应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···
可以用句柄的方法?怎样获得编辑框控件的句柄?怎样修改呢?
可以用指针的方法?怎样获得编辑框控件的指针,怎样修改呢内容? 展开
请大哥帮帮我啊··这个问题困扰我很久都没有解决···跪地感谢了··
不是这个意思,不知道怎么在线程中(dlg外面)改变dlg里面的CEdit编辑框的内容····我应该怎么操作啊???我在dlg外面不知道怎么获取这个dlg里面的CEdit···
可以用句柄的方法?怎样获得编辑框控件的句柄?怎样修改呢?
可以用指针的方法?怎样获得编辑框控件的指针,怎样修改呢内容? 展开
7个回答
展开全部
要这样你必须创建一个非模态对话框,而不是模态对话框。这个过程比较麻烦,还要考虑一些细节。下面的步骤可供你参考,写得不全面(假设你的工程名为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。
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。
展开全部
首先请确认你在你的对话框类里面为edit添加的变量是公有成员变量(假设为m_edit)。然后通过对话框对象直接对成员进行引用就可以了。如你的对话框对象为dlg,那么用dlg.m_edit.SetWindowText()就可以了。或者你把对话框进一步封装了,在对话框中增加设置编辑框文本的公有函数,这样m_edit也可以定义成非共有的成员变量。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用spy++ 获取要找cedit 的窗口类名和窗口名 然后调用 FindWindow 获取该窗口的指针 接下来就可以进行相对应的操作
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
对于这个CEdit有一个ID,假设为IDC_XXXX,用GetDlgItem(IDC_XXXX)就可以获得这个CEdit。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
线程操作窗体之需要获得相应的句柄就OK了,比如线程 CreateThread 是可以传递一个参数的,你可以将 this 这个指针传递进来,然后 ((CDialog*)lpParameter)-> 就可以获得到相应的资源,或者用标准的API函数也可以。
线程操作资源(这里资源只广义资源不是RES)需要注意一个同步问题,就是多个线程可能同时在修改这个资源就会出现冲突,所以必须要使用临界区等方法同步一下
线程操作资源(这里资源只广义资源不是RES)需要注意一个同步问题,就是多个线程可能同时在修改这个资源就会出现冲突,所以必须要使用临界区等方法同步一下
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询