做了个闹钟提醒,到点会跳出一个gif文件,这个文件我放在窗口theForm里了。
实例化这个窗口并设置TopMost=true,结果有时候能跳出来(屏幕最前端),有时候画面
会停在下面一层。这个应该怎么实现啊?好像TopMost不能保证窗口显示在正在前端运行的
其他程序上。
是不是因为其他活跃的进程占据了窗口最前端,这个窗口就不能再在最前端显示了?如果是这样
的话是不是应该调用API(这个我不怎么懂)里的类似setwindowpos之类的函数啊?代码怎么
实现啊?
实例化这个窗口并设置TopMost=true,结果有时候能跳出来(屏幕最前端),有时候画面
会停在下面一层。这个应该怎么实现啊?好像TopMost不能保证窗口显示在正在前端运行的
其他程序上。
是不是因为其他活跃的进程占据了窗口最前端,这个窗口就不能再在最前端显示了?如果是这样
的话是不是应该调用API(这个我不怎么懂)里的类似setwindowpos之类的函数啊?代码怎么
实现啊?
HWND hWnd // handle of window to bring to foreground
);
还有4楼和6楼的两个方法没有试过,我是在线程中实例化并显示窗口的。
后来又看了一篇文章,说是辅助线程里面不应该实例化UI的。
是不是用Timer就能够避免这个问题呢,我明天试一下!前面几个仁兄提到的TopMost属性,其实这个属性的说明好像是“当别的当前窗口没有TopMost=true的时候,才在最前端显示”(VS2005-〉打开一个窗口-〉点TopMost属性的显示),是不是因为一个别的程序比如word占据了程序的最前端的时候,这个闹钟程序就不能弹出在最前端了?进程又没有前台和后台之分啊,如果是的话能不能在到点提醒的时候让这个进程到前端运行,这个应该怎么实现阿?
本来是在辅助线程实例化窗体又ShowDialog的,今天改成Timer控件做了。
莫非是辅助线程实例化UI确实有问题?关于API,我没有试,不知道行不行,总之谢谢各位兄弟的帮忙了。
分不多,大家分了吧