Я создаю приложение MFC, которое будет запускаться при нажатии в контекстном меню проводника (щелчок правой кнопкой мыши).
Но мне нужно запустить только один экземпляр приложения.Для этого я должен использовать FindWindow и AfxRegisterClass
Я попытался зарегистрировать класс в своем приложении MFC, как показано ниже:
BOOL CNDSClientDlg::InitInstance()
{
//Register Window Updated on 16th Nov 2010, @Subhen
// Register our unique class name that we wish to use
WNDCLASS wndcls;
memset(&wndcls, 0, sizeof(WNDCLASS));
//Class name for using FindWindow later
wndcls.lpszClassName = _T("NDSApp");
// Register new class and exit if it fails
if(!AfxRegisterClass(&wndcls)) // [C]
{
return FALSE;
}
}
ивызвал метод в конструкторе класса MFC.Я проверял, что класс регистрируется во время запуска приложения.
Теперь в моем расширении оболочки я пытаюсь найти класс, зарегистрированный в моем MFC, как показано ниже:
CWnd *pWndPrev = NULL;
pWndPrev = CWnd::FindWindow(_T("NDSApp"),NULL);
if(pWndPrev != NULL)
pWndPrev->BringWindowToTop();
НоЯ не могу получить CWnd to Window.Не в состоянии понять это.Пожалуйста, дайте мне знать, если я что-то упускаю или делаю что-то не так.