在分割视图中,运行程序时,失去程序焦点

uuwcl 2010-03-04 03:26:01
我在一个多视图,有子框架的程序中,建了二个分割视图

在左视图,点击OnSelchanged(NMHDR* pNMHDR, LRESULT* pResult) 时运行,右视图的程序

CChildAAAFrame* pFrame=(CChildAAAFrame*)GetParentFrame();
CPrintRightView* pView=(CPrintRightView*)pFrame->m_wndSplitter.GetPane(0,1);

if (hSelectedItem==hrXXX)
pView->OpenXXXYYY();


问题是,OpenXXXYYY()运行时间很常,或者 点击别的程序后,整个程序就会失去焦点

要,等到,程序运行完毕,才能重新获得焦点,怎么解决这个问题


非常感谢

...全文
92 9 打赏 收藏 转发到动态 举报
写回复
用AI写文章
9 条回复
切换为时间正序
请发表友善的回复…
发表回复
向立天 2010-03-05
  • 打赏
  • 举报
回复
引用 8 楼 uuwcl 的回复:
但是我,在运行这个函数时,不需要执行其他地方


那你就等着他运行完吧
uuwcl 2010-03-05
  • 打赏
  • 举报
回复
但是我,在运行这个函数时,不需要执行其他地方
yujunnb 2010-03-05
  • 打赏
  • 举报
回复
....学习的过程很漫长。。。。哎
青稞 2010-03-05
  • 打赏
  • 举报
回复
重开线程,不然你的OpenXXXYYY()在主线程里面执行,会干扰整个线程运行。
uuwcl 2010-03-05
  • 打赏
  • 举报
回复
现在是,程序运行时,显示 沙漏 整个屏幕,除顶上标题栏,全是白的,有个沙漏 ,怎样才能唤醒程序界面,而不等,程序结束,现为在视图增加的进度条也没有显示进度了,晕阿

可否不用,多线程,因为在操作这个函数时,不想让程序,再操作其他地方
向立天 2010-03-05
  • 打赏
  • 举报
回复
在OnSelchanged里启动一个新的线程
OpenXXXYYY(); 的相关操作放到这个线程里
如果你不懂多线程就去baidu一下
因为这个问题不是一两句代码可以解决的
我们在这说你也不一定理解
uuwcl 2010-03-05
  • 打赏
  • 举报
回复
没人会回答吗 ............
uuwcl 2010-03-04
  • 打赏
  • 举报
回复
老大,怎样写阿,不会阿,菜鸟阿
蒋晟 2010-03-04
  • 打赏
  • 举报
回复
很慢的操作放到工作线程里面去。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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