|
本帖最后由 onlyclxy 于 2013-11-4 23:49 编辑
见有人不知道这个是干嘛的,就补充一下这个代码的作用
非此程序一般情况下,是双击打开程序一次,就会弹出一个窗口,打开二次就会弹出两个窗口,打开五次就会弹出五个窗口。我写的这个程序无论打开多少次,都只会弹出一个窗口。。。(第一次双击打开这个程序在不关闭的情况下,如果第二次再次双击打开这个程序,则会弹出第一次打开的程序。并且自动关闭第二次打开的程序。)
如果有用的着的可以参考下!
我之前也在新手区问过这个问题,自己做的一个东西,不想因为记性不好而重复打开好多个,占任务栏。后来有人说,可以检测进程中是否有这个程序,如果有的话,就在初始化里关闭自身。于是我自己试了试发现有些问题:文件名变化了,进程名也就变化了。不可靠。就想到窗口标题。实验了一阵,最后结果是这样的:我新加进一个起辅助的窗口,这个辅助的窗口默认开启并且隐藏。每次程序打开时会自动检测一下有没有这个辅助窗口的标题,如果查询到有的话,说明这个程序是开启的,就激活这个程序并且关闭自身。如果查询不到有这个标题,就打开窗口。代码如下:
- #include"子窗口.t"
- 空间 只打开一个窗口
- //默认空间
- //项目用时只,需要删除掉辅助的对话框即可.
- 功能 打开子窗口_点击()
- //显示子窗口
- 子界面句柄=控件.打开窗口("子窗口")
- 功能结束
- 功能 隐藏子窗口_点击()
- //隐藏子窗口
- 子界面句柄=控件.打开窗口("子窗口",假)
- 功能结束
- 功能 初始化()
- //查询是否存在子窗口
- 窗口句柄=窗口.找到窗口("子窗口")
- 辅助.消息框("子窗口句柄"&窗口句柄,"提示")
- //若是不存在子窗口,则返回的窗口句柄为0,这里通过查询字符长度判断窗口句柄是否有效.
- 长=字符串.长度(窗口句柄)
- 如果(长>1)
- //查询到有子窗口存在,关掉自身,同时激活原主窗口
- 辅助.消息框("找到子窗口,句柄:"&窗口句柄&",本程序即将关闭并且激活主窗口!","提示")
- //通过子窗口查询到它的父窗口,即这里的主窗口
- 父窗口句柄=窗口.得到父窗口(窗口句柄)
- //还原最小化的窗口
- 窗口.还原(父窗口句柄)
- //将窗口置顶一次
- 窗口.激活(父窗口句柄)
- 辅助.退出()
- 否则
- //未查询到有子窗口存在,初始化主窗口并且打开子窗口.
- 辅助.消息框("未找到子窗口存在,运行主窗口!","提示")
- //默认子窗口是隐藏的,不需要打开
- 子界面句柄=控件.打开窗口("子窗口",假)
- 如果结束
- 功能结束
- 空间结束
- //空间结束语句
复制代码 这个代码有两个窗口,一个窗口标题是“主窗口”,一个窗口标题是“子窗口”。名字可以随意改。程序里有两个按钮没有实际作用,主要是里面的初始化代码,复制了就能用。
这个东西恐怕是有很大的局限性,但对于一些特定不需要多开的程序,还是有些作用的。
|
本帖子中包含更多资源
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
|