作者asdfg1597860 (Jay)
看板C_and_CPP
标题[问题]MFC 类似PROGRESSBAR的功能
时间Mon May 28 16:40:48 2018
开发平台(Platform): (Ex: Win10, Linux, ...)
WIN7
编译器(Ex: GCC, clang, VC++...)+目标环境(跟开发平台不同的话需列出)
MFC2003
额外使用到的函数库(Library Used): (Ex: OpenGL, ...)
问题(Question):
如题 小弟想要在按下某个按钮时出现一个Dialog
由於不想让FUNCTION里运算的资料停下来
所以我做了一个Modeless的Dialog让它可以边运算边显示Dialog
点选按钮後会跳出Messagebox
如果是IDOK
则出现Dialog
可能是因为create的特性出现的Dialog不是完整的(只显示title)
喂入的资料(Input):
预期的正确结果(Expected Output):
错误结果(Wrong Output):
Dialog 里 CStatic 及两个button无法显示
程式码(Code):(请善用置底文网页, 记得排版,禁止使用图档)
void Function()
{
pModeless = new CModeless(this);
pModeless->create(IDD_DIALOG);
pModeless->ShowWindow(SW_HIDE);
呼叫Messagebox
Switch 是否为IDOK
{
pModeless->ShowWindow(SW_SHOW);
计算...
...
}
if(pModeless != NULL)
pModeless->OnCancel();
}
补充说明(Supplement):
请各位高手给小弟一点意见
--
※ 发信站: 批踢踢实业坊(ptt.cc), 来自: 59.127.200.146
※ 文章网址: https://webptt.com/cn.aspx?n=bbs/C_and_CPP/M.1527496851.A.F26.html
1F:推 Schottky: 有没有发现运算时你的整个程式都卡住不动了 05/28 21:52
2F:→ asdfg1597860: 这到是没有欸 过程滑鼠会转圈圈 圈圈转完dialog 05/28 23:35
3F:→ asdfg1597860: 就会完全显示计算也完成了 05/28 23:35
4F:推 Schottky: 本来想写一篇来解释,不过刚好搜寻到板上有一篇不错的文 05/29 03:25
5F:→ Schottky: #1GnfbVvR 跟我要讲的东西大致相同,可以参考看看 05/29 03:26
6F:→ Schottky: 把 PeekMessage 那几行插在ShowWindow之後以及计算中途 05/29 03:28
7F:→ Schottky: 你就会看到 modeless dialog 被画完以及进度条被更新 05/29 03:28
8F:→ Schottky: 开 thread 的方法较正统,PeekMessage 法较偷懒简便 05/29 03:30
9F:推 Schottky: 简单说就是 message queue 要有人去处理, 05/29 03:56
10F:→ Schottky: 画面才会更新,滑鼠点按钮才会有反应等等 05/29 03:56
11F:→ asdfg1597860: 谢谢Schottky大大 问题解决了 看来我对MFC架构 05/29 09:06
12F:→ asdfg1597860: 不够熟 05/29 09:06
13F:→ james732: 想要熟MFC架构非常困难啊 XD 05/31 00:49
14F:→ asdfg1597860: 目前我也只有套套function而已 架构还真的不了解 06/01 00:17