Information générale
Catégorie:
Microsoft Foundation Classes
The dialog window is not created before dlg.DoModal() and handle m_hWnd is not valid, so you'll alway get an assert before DoModal(). Try to place SetActiveWindow() or SetFocus() into OnInitDialog(). You could also try to destroy splash screen instead of hiding.
Alexander
>Hi Alexander, thanks for you response
>
>well, here is the code:
>
> // show splash screen for settings all stuff
> CSplashThread* pSplashThread = (CSplashThread*) AfxBeginThread(RUNTIME_CLASS(CSplashThread), THREAD_PRIORITY_NORMAL, 0, CREATE_SUSPENDED);
> if (pSplashThread == NULL)
> {
> AfxMessageBox(_T("No se pudo crear pantalla de inicio"), MB_OK | MB_ICONSTOP);
> return FALSE;
> }
> ASSERT(pSplashThread->IsKindOf(RUNTIME_CLASS(CSplashThread)));
> obizconfig obizconfigxml;
> if (!obizconfigxml.Load_XML_Document("config.xml"))
> {
> obizconfigxml.setnewconfig("config.xml");
> obizconfigxml.Load_XML_Document("config.xml");
> }
> CString cbitmap = getsplashscreen();
> pSplashThread->SetBitmapToUse( _T(cbitmap) );
> pSplashThread->ResumeThread(); //Resume the thread now that we have set it up
> Sleep(500);
> pSplashThread->HideSplash(); // ocultamos el splash una vez finalizado el setup
> CObizloginDlg dlg;
> dlg.SetActiveWindow(); <------------------ here try to do your tip
> //dlg.SetWindowPos(HWND_TOP);
> //BringWindowToTop(dlg.m_hWnd);
> //SetWindowPos(dlg.m_hWnd,HWND_TOP);
> //dlg.SendMessage(BringWindowToTop);
> //dlg.GetActiveWindow();
> //SetFocus(dlg.m_hWnd);
> //ShowWindow(dlg.m_hWnd, SW_SHOWNORMAL);
> //m_pMainWnd = &dlg;
> //dlg.m_hWnd->SetFocus();
> //SetFocus(dlg.m_hWnd);
> //dlg.setCOMregisteruser(configX.getCOMregisteruser());
> int nResponse = dlg.DoModal();
>
>but i obtain an assert error
>
>thanks for your help
>
>Best Regards
>
>Francisco Morosini
Précédent
Répondre
Voir le fil de ce thread
Voir le fil de ce thread à partir de ce message seulement
Voir tous les messages de ce thread
Voir tous les messages de ce thread à partir de ce message seulement