首页
社区
课程
招聘
在DLL通过按钮事件新建的线程里,怎么往DLL编辑框里写入信息?
2024-3-2 18:18 1707

在DLL通过按钮事件新建的线程里,怎么往DLL编辑框里写入信息?

2024-3-2 18:18
1707

本来代码是放在按钮事件函数里的,代码是个循环,DLL会出现卡死。
试着在按钮事件函数里,新建一个线程,来放功能代码。
大概实现如下:
void TEST::OnBnClickedButton1()
{ //完成 BOSS提示 功能
// TODO: 在此添加控件通知处理程序代码
// 创建新的线程来完成 找BOSS 的功能(避免卡死)。
//m_EDIT为编辑框所关联的变量。
参数结构.EDIT = m_EDIT;//全局结构变量来保存参数,主要是子线程要用到

1
2
3
4
5
6
7
8
9
if (!CreateThread(NULL, 0, (LPTHREAD_START_ROUTINE)Find,NULL, 0, NULL))
{
    MessageBoxA(0, "找BOSS线程创建失败!", "0", 0);
}
else
{
    MessageBoxA(0, "找BOSS线程创建成功!", "0", 0);
}
   //找极品BOSS代码省略。。找到后,只写入BOSS信息到m_EDIT对象(编辑框关联的对象)中,由子线程将BOSS信息输出到编辑框。

}

void Find()
{
⠀⠀⠀⠀while (1)
⠀⠀⠀⠀{
⠀⠀⠀⠀⠀ SetWindowTextW(hDlg, 参数结构.EDIT);
⠀⠀⠀⠀⠀ Sleep(1000);
⠀⠀⠀⠀ }
}
上面的代码有大问题吗?
那个SetWindowTextW函数里的hDlg参数需要传入 编辑框控件的 句柄。
在子线程中 怎么获得编辑框控件句柄hDlg?在子线程中,怎么获得DLL对话框的句柄?


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

收藏
点赞0
打赏
分享
最新回复 (7)
雪    币: 205
活跃值: (2624)
能力值: ( LV7,RANK:140 )
在线值:
发帖
回帖
粉丝
yeyeshun 2 2024-3-2 18:48
2
0
创建线程的时候把this设置为线程参数,线程中把参数强制转换为TEST*
雪    币: 9540
活跃值: (4443)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lononan 2024-3-2 22:44
3
0
m_EDIT如果是控件,直接m_EDIT->setwindowtext,如果是cstring,直接赋值就行了.
然后你的窗口所在线程不停的执行updatewindow就行了,不太记得是不是叫updatewindows,反正就是要更新下他就刷新出来了
雪    币: 9540
活跃值: (4443)
能力值: ( LV4,RANK:50 )
在线值:
发帖
回帖
粉丝
lononan 2024-3-2 22:45
4
0
lononan m_EDIT如果是控件,直接m_EDIT->setwindowtext,如果是cstring,直接赋值就行了. 然后你的窗口所在线程不停的执行updatewindow就行了,不太记得是不是叫u ...
当然,不停的update会一直闪,你可以在find线程里面通过窗口的类对象->updatewindow()也是可以的
雪    币: 8085
活跃值: (5270)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
mudebug 2024-3-3 06:52
5
0
放弃mfc ,使用ImGUI  比你折腾这个牛逼多了
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-3-7 18:44
6
0
yeyeshun 创建线程的时候把this设置为线程参数,线程中把参数强制转换为TEST*
传入this, 是将关联的对话框对象的地址传过去了吧。之后,可以通过该指针,可以操作 对话框所关联对象 里面的成员。谢谢你。有用的。
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-3-7 18:45
7
0
lononan 当然,不停的update会一直闪,你可以在find线程里面通过窗口的类对象->updatewindow()也是可以的
谢谢帮助!
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-3-7 18:46
8
0
mudebug 放弃mfc ,使用ImGUI 比你折腾这个牛逼多了
。。VS能支持ImGUI吗?没听说过这个哦。。
游客
登录 | 注册 方可回帖
返回