none
我用vc++2005写了一个基于对话框的smartphone程序,按HOME键切换到后台后,按返回键不能切换回来,任务列表里也没有该程序? RRS feed

  • 问题

  •  我用vc++2005写了一个基于对话框的smartphone程序,按HOME键切换到后台后,按返回键不能切换回来,
    当我再运行一次该程序的时候,我在进程管理器发现并没有产生一个新实例,那个后台的实例也没有切换到前台来,只是标题栏变成我那个程序的标题栏了,怎么回事呢?

    我在任务管理器里面列表里也没有该程序,只能在进程管理器找到该程序的进程。

    问题:
    1.
    我想此程序出现在任务列表里面,怎么弄啊?
    2.
    我想给程序加个系统热键,比如:
    当此程序在后台时候,我按一下音量键,就把此程序切换到前台最顶层窗口了,怎么搞啊?

    3.如何防止一个程序多次被执行产生多个实例(如果wm系统默认已有此防止产生多个实例的功能,那我怎么写代码,才能产生多个实例呢?)
    www.dyy2.com
    2009年2月6日 16:46

答案

  •  你做的是模态对话框是不能切换回他的父窗口(desktop)的,有2个办法解决,1是createwindow作为dialogbox的parent,2是把dialog的popup属性改为overlap。防止重复运行的简单方法就是findwindow,找到就setforeground并退出。
    • 已标记为答案 xtaxa.com 2009年2月15日 16:50
    2009年2月15日 9:03

全部回复

  • 通常情况下.你不做任何设置,你切换程序时,程序会出现在任务列表中.

    防止多次执行,这种不用担心,如果该进程已启动,通常会将该进程重新激活.(系统会自动判断的)

    以上基于.net cf程序.我不知道你是否使用到.net cf.
    2009年2月9日 7:03
  • 你好,好像很都程序都如你所说,我就是奇怪我写这个有点不对。
    我这个是 用vc++2005做的MFC基于对话框的程序
    在windows mobile系统中的SMARTPHONE2003se版本执行的。
    奇怪的地方:
    1。只出现在进程管理器中,不出现在任务管理器中。怎么才能使程序出现在任务管理器中啊?
    2.如你所说,“防止多次执行,这种不用担心,如果该进程已启动,通常会将该进程重新激活.(系统会自动判断的)”,但是我想产生多个实例呢?怎么写代码呀?

    哦,对了,我这个程序在这里 http://www.xtaxa.com/xtaxa/www/mysoft/gprstime.rar
    2009年2月10日 13:19
  • Hi,你好,我最近也是遇到跟你一样的问题,很是纳闷。
    其实按HOME键后再点程序进入,大概要等60秒,而且如果即使你不做什么,他也会在一段时间后自动返回去的,这个不理解啊。
    不知道你现在解决了没有?
    Liam
    2009年2月14日 2:38
  •  你做的是模态对话框是不能切换回他的父窗口(desktop)的,有2个办法解决,1是createwindow作为dialogbox的parent,2是把dialog的popup属性改为overlap。防止重复运行的简单方法就是findwindow,找到就setforeground并退出。
    • 已标记为答案 xtaxa.com 2009年2月15日 16:50
    2009年2月15日 9:03
  •  
    MrPotter ,谢谢你了

    www.dyy2.com
    2009年2月15日 16:51
  • 好人哪,感激不尽
    Liam
    2009年2月16日 5:49