首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > VC/MFC >

mfc运行启动的有关问题

2013-02-19 
mfc运行启动的问题如何使程序只运行一次,也就是像一些播放软件那样,每次双击与程序相关联的文件,不再创建

mfc运行启动的问题
如何使程序只运行一次,也就是像一些播放软件那样,每次双击与程序相关联的文件,不再创建一个新窗口。 mfc? mfc
[解决办法]
'''singleton模式
[解决办法]
方法一:使用Mutex来进行
1.  首先要添加如下的namespace:
using System.Threading;
 
2.  修改系统Main函数,大致如下:
        bool bCreatedNew;
       
        //Create a new mutex using specific mutex name
        Mutex m =new Mutex( false, "myUniqueName", out bCreatedNew );
        if( bCreatedNew )
            Application.Run(new yourFormName());
 
如上面编码就可以了,要注意的一点是,在给Mutex起名字的时候,不要太简单,以防止和其他程序的Mutex重复,从而达不到所预想的效果。
[解决办法]


BOOL CInstantMessagingApp::InitInstance()
{
/// 保证只有唯一实例在运行
HANDLE hEvent = ::CreateEvent( NULL, FALSE, FALSE, "InstantMessaging" );
if( hEvent )
{
if( ERROR_ALREADY_EXISTS == GetLastError() )
{
return FALSE;
}
}

...

return FALSE;
}

热点排行