C++如何同时运行多个函数?

末影小末EnderMo 2020-06-19 07:58:32
写了一个桌面应用的PopBox函数和C_update用于实现程序更新
 case IDC_MENUTXT0:
{
PopBox(NULL, "正在获取更新", "VersionSelector", 0);
C_update();
TipBox(NULL, "--", "CheckUpdate", NULL);
break;
}

如上代码,但是很明显,必须要先关闭PopBox这个窗口C_update才可以运行
把C_update放到PopBox上面就先在内部获取完更新才有"正在获取更新"的提示框出现

想实现的效果就是出现PopBox"正在获取更新"的提示框时,同时执行C_update在后台获取版本信息,获取完成后则打开TipBox进行更新提示.

此外,PopBox是在非激活状态自动关闭的,也就是说其他窗口出现后PopBox就关闭了.
概括:
同时运行PopBox和C_update函数
...全文
1363 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2020-06-20
  • 打赏
  • 举报
回复
模态 PopBox对话框,初始化中运行C_update函数

C_update函数 完成后 ,call EndDialog
  • 打赏
  • 举报
回复
引用 8 楼 schlafenhamster 的回复:
非模态 PopBox对话框,初始化中运行C_update函数
非模态对话框的代码好多都是MFC的 找不到WIN32的代码
schlafenhamster 2020-06-20
  • 打赏
  • 举报
回复
非模态 PopBox对话框,初始化中运行C_update函数
  • 打赏
  • 举报
回复
引用 11 楼 schlafenhamster 的回复:
非模态对话框的代码: CreateWindow("#32770","Modless", WS_POPUPWINDOW|WS_VISIBLE|WS_CAPTION, 100,100,300,300, hwnd, 0, hInstance, 0);
知道了,可以把WS_POP......替换成PopBox(NULL,"XX","XX",0)
  • 打赏
  • 举报
回复
引用 12 楼 schlafenhamster 的回复:
简单的 是·: CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, DialogProc) ;
但是需要使用的是PopBox而不是IDD_DIALOG1...
schlafenhamster 2020-06-20
  • 打赏
  • 举报
回复
简单的 是·:
CreateDialog(hInstance, MAKEINTRESOURCE(IDD_DIALOG1), hwnd, DialogProc) ;
schlafenhamster 2020-06-20
  • 打赏
  • 举报
回复
非模态对话框的代码:
CreateWindow("#32770","Modless",
WS_POPUPWINDOW|WS_VISIBLE|WS_CAPTION,
100,100,300,300,
hwnd,
0,
hInstance,
0);
smwhotjay 2020-06-19
  • 打赏
  • 举报
回复
1.采用非模态对话框
2.C_update(); 丢在模态对话框里消息处理。
  • 打赏
  • 举报
回复
这样用不了自己的PopBox,没内味了 如上效果,出现这个PopBox对话框之后就同时运行C_update函数,剩下的TipBox已经交给C_update处理了
  • 打赏
  • 举报
回复
引用 3 楼 zgl7903 的回复:
CreateDialogIndirect 创建非阻塞提示对话框 启动后台线程运行 C_update, 线程执行完毕后关闭 提示框,弹出 TipBox
可以简单说一下怎么用吗 hInstance, lpTemplate, hWndParent, lpDialogFunc 分别指的是什么呢
zgl7903 2020-06-19
  • 打赏
  • 举报
回复
CreateDialogIndirect 创建非阻塞提示对话框
启动后台线程运行 C_update,
线程执行完毕后关闭 提示框,弹出 TipBox


  • 打赏
  • 举报
回复
引用 1 楼 gouyanfen 的回复:
C_update();在弹出对话框前另开线程运行,不过最好的是PopBox内部处理,这样可以处理进度条之类的
这又不是MFC的,里面都是用WIN32的HDC绘制的 但话说,到底怎么同时运行呢 有代码示例吗
gouyanfen 2020-06-19
  • 打赏
  • 举报
回复
C_update();在弹出对话框前另开线程运行,不过最好的是PopBox内部处理,这样可以处理进度条之类的

15,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧