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

mfc怎么在程序已运行的情况下再次打开成程序呼出已运行的程序

2012-04-13 
mfc如何在程序已运行的情况下再次打开成程序呼出已运行的程序?如题。先谢谢各位了![解决办法]或者用SetProp

mfc如何在程序已运行的情况下再次打开成程序呼出已运行的程序?
如题。先谢谢各位了!

[解决办法]
或者用SetProp给应用程序主窗口设置属性

在程序初始化时,用GetProp查找每一应用程序主窗是否
有包含设置的特定属性。

如果有,激活并显示:

C/C++ code
#define ID_GUI "0xa9a66d98, 0x18c7, 0x447b, 0x80, 0xc, 0xa3, 0x20, 0xea, 0x4f, 0xb6, 0xe8"CString g_szPropName = ID_GUI;  HANDLE g_hValue = (HANDLE)1;BOOL CALLBACK EnumWndProc(HWND hwnd,LPARAM lParam){    HANDLE h = GetProp(hwnd,g_szPropName);    if( h == g_hValue)    {        *(HWND*)lParam = hwnd;        return false;    }    return true;}HWND oldHWnd = NULL;EnumWindows(EnumWndProc,(LPARAM)&oldHWnd); //枚举所有运行的窗口if(oldHWnd != NULL){    // AfxMessageBox("本程序已经在运行了");    ::ShowWindow(oldHWnd,SW_SHOWNORMAL);    //激活找到的前一个程序    ::SetForegroundWindow(oldHWnd);   //把它设为前景窗口     return false;        //退出本次运行} 

热点排行