程序等待的问题!高分~!

akuyw 2009-08-20 07:33:13
最近小弟的程序又遇到了个问题,情况是这样:

对话框上的COMBOBOX控件是用来选择类型的,然后我想在某个按钮事件响应后给用户留出一定的时间来操作COMBOBOX控件选择

他们需要的东西,然后继续...用sleep后发现对话框不能操作了,所以舍弃...

后来我又想到能不能监视COMBOBOX的SELCHANGE事件来完成,用了getmessage和WaitForSingleObject都不行,不知道怎么可以达

到我的目的!!求教各位了!


谢谢各位了!
...全文
110 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
icefairy 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akuyw 的回复:]
引用 2 楼 fishion 的回复:
用SetTimer,在OnTime里调用KillTimer


这个是定时调用的,怎么才能留出一定时间呢?
[/Quote]
定时器的时间设置成给用户预留的时间,
OnTime 中 先调用killtimer 在做你想要的操作
akuyw 2009-08-27
  • 打赏
  • 举报
回复
问题解决~

f515sf1sd15fsd1f56sd的方法我还没试过,不过我之前用setfocus貌似不行!
akuyw 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 12 楼 xwsn007 的回复:]
引用 6 楼 xwsn007 的回复:
可能是楼主实现需求的思路问题,条条大路通罗马,比如:
可以把combox放在一个子窗口里(对话框),点击按钮后,弹出这个模式对话框,让用户选择类型,选好后,再回到父窗口,程序就会继续执行了


楼主,难道我没说清楚么,咋还问啊?
主窗口放你那个按钮,点击按钮弹出一个模式的子窗口(子窗口关闭前,不会执行按钮处理函数里的后续代码),combobox放在这个子窗口里,供用户选择操作,并把用户的选择保存起来,供主窗口访问。
[/Quote]

大哥,你说的这方法谁都知道!麻烦有点建设性好不!?
  • 打赏
  • 举报
回复
试试用SetFucos()

用比较简单的
私有成员变量 int i=0;
在你某个按钮设置SetTimer(1,1000,0) SetTimer(2,1,0) 并且 GetDlgItem(hwnd) 保存你COMBOBOX的句柄

OnTimer 添加
if(nEvent==1)
{
i++;

}
if(nEvent==2)
{
while(i!=x) (x是你要等待的秒数)
{
SetFocus(hwnd);
}
}

够绝吧

xwsn007 2009-08-21
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 xwsn007 的回复:]
可能是楼主实现需求的思路问题,条条大路通罗马,比如:
可以把combox放在一个子窗口里(对话框),点击按钮后,弹出这个模式对话框,让用户选择类型,选好后,再回到父窗口,程序就会继续执行了
[/Quote]

楼主,难道我没说清楚么,咋还问啊?
主窗口放你那个按钮,点击按钮弹出一个模式的子窗口(子窗口关闭前,不会执行按钮处理函数里的后续代码),combobox放在这个子窗口里,供用户选择操作,并把用户的选择保存起来,供主窗口访问。
KHacker_001 2009-08-20
  • 打赏
  • 举报
回复
不懂 啊 呵呵
akuyw 2009-08-20
  • 打赏
  • 举报
回复
各位,就是这个意思,比如:

Afxmessagebox("请选择您想执行的操作");
等待用户对COMBOBOX的操作...
继续.....

如果你们知道,麻烦给个例子,小弟学的不好才来问大家...
MoXiaoRab 2009-08-20
  • 打赏
  • 举报
回复
对话框上的COMBOBOX控件是用来选择类型的,然后我想在某个按钮事件响应后给用户留出一定的时间来操作COMBOBOX控件选择

他们需要的东西,然后继续...
=======================================
这段话我完全没看懂
副组长 2009-08-20
  • 打赏
  • 举报
回复
响应COMBOBOX的SELCHANGE事件就可以了。

怎么会有在对话框里面用延时等待的奇怪想法?它本身就在等你了。

这不是好像在主程序里面不用消息循环,自己循环等待防止程序结束吗?
zngsai 2009-08-20
  • 打赏
  • 举报
回复
你要搞什么啊,有这么傻的用法吗?!
xwsn007 2009-08-20
  • 打赏
  • 举报
回复
可能是楼主实现需求的思路问题,条条大路通罗马,比如:
可以把combox放在一个子窗口里(对话框),点击按钮后,弹出这个模式对话框,让用户选择类型,选好后,再回到父窗口,程序就会继续执行了
向立天 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 akuyw 的回复:]
引用 2 楼 fishion 的回复:
用SetTimer,在OnTime里调用KillTimer


这个是定时调用的,怎么才能留出一定时间呢?
[/Quote]

第一个时钟消息过来的时候就是在设定的时间之后
再按钮消息里设定时钟
然后在时钟消息里处理想要做的事
要是在这期间用户操作了combox就直接销毁时钟接续执行
akuyw 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 xianglitian 的回复:]
某个按钮事件响应后给用户留出一定的时间来操作COMBOBOX控件选择?
你是要在相应函数里打延时?
这样不行吧
[/Quote]

基本就是这个意思!就是说程序执行一段后中间"休息"一段时间,这段时间留给用户对界面进行操作,然后接着运行!或者说是休息到用户有指定操作了才继续运行!两种都可以!!
akuyw 2009-08-20
  • 打赏
  • 举报
回复
[Quote=引用 2 楼 fishion 的回复:]
用SetTimer,在OnTime里调用KillTimer
[/Quote]

这个是定时调用的,怎么才能留出一定时间呢?
fishion 2009-08-20
  • 打赏
  • 举报
回复
用SetTimer,在OnTime里调用KillTimer
向立天 2009-08-20
  • 打赏
  • 举报
回复
某个按钮事件响应后给用户留出一定的时间来操作COMBOBOX控件选择?
你是要在相应函数里打延时?
这样不行吧

16,551

社区成员

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

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

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