mfc怎样使对话框只运行一个实例

如果已经运行一个实例,则把原来的那个显示出来?推荐一个好的C/C++/VC的学习网站最好有源码... 如果已经运行一个实例,则把原来的那个显示出来?
推荐一个好的C/C++/VC的学习网站
最好有源码
展开
 我来答
14566666
2008-10-16 · TA获得超过1382个赞
知道小有建树答主
回答量:905
采纳率:50%
帮助的人:272万
展开全部
最简单的就是设置一内存共享变量.<进程间共享的>

每个实例运行的时候,去查找一个那个变量,如果没有这个变量,就说明没有实例运行就创建它

在窗口有了句柄以后,把句柄值放到这个共享变量里面去.如果查找的时候

有这个变量,就是说明有个实例正在运行,那么我们就读取这个变量的值,

再发送一个自定义消息给那个句柄的窗口<就是运行的实例>然后自己退出

运行的实例收到消息后,看窗口现在是否显示,如果没有,就显示它

2.我自己刚写的办法:

每次运行的时候枚枚举一个进程,如果进程中有实例的映像名存在<就是.exe>

就通过映像名找到进程ID,在通过进程ID找那个主窗口,再和上面的发送消息一样

这种方法有个很大的漏洞,exe文件名改了后就失效.并这种方法效率很低,

但是涉及的知识很广,利于学习用.

如果想用第一中方法,我给你个读写内存共享变量的一个例子你.自己去实现

这个十分简单.

要的留邮箱.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
焉湉湉00P
2008-10-15 · TA获得超过1856个赞
知道大有可为答主
回答量:1556
采纳率:100%
帮助的人:1390万
展开全部
程序启动时用CreateMutex创建一个Mutex,返回ERROR_ALREADY_EXISTS表示这个Mutex已经创建了,退出程序
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
sungengyu
2008-10-16 · 超过18用户采纳过TA的回答
知道答主
回答量:67
采纳率:0%
帮助的人:58.4万
展开全部
授之与鱼,不如授之与渔。

建议你看看《Windows核心编程》
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
没事就抠脚的大汉
2008-10-16 · TA获得超过340个赞
知道小有建树答主
回答量:381
采纳率:0%
帮助的人:163万
展开全部
创建互斥或者事件对象.具体方法网上找吧
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
livuerforyy
2008-10-16
知道答主
回答量:26
采纳率:0%
帮助的人:0
展开全部
用 SetProp,GetProp 函数..
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式