Classe die Dialog erstellt mehrfach aufrufen?



  • Hallo,
    ich hab mir eine klasse erstellt in der mit CreateWindowEx ein Fenster erstellt werden soll. Diese Fenster soll so ähnich wie eine MessageBox fungieren. unter anderem 100 & mehr mal nebeneinander aufgehen.

    einmal das Fenster zu erstellen klappt, jedoch ein weiteres fenster öffnen wärend das eine noch offen ist geht nicht, da bricht mir das prog mit einer unbehandeleten ausnahme ab. und schreibt mir etwas (was ich nicht ganz versteh) das der _firstheap == dem _nextheap ist. 😕

    so erstelle ich das fenster

    HWND CCView::CreateDlg(HINSTANCE hInstance, HWND hWndParent, int nCmdShow,LPCTSTR lpszTitel, RECT *pRect)
    {
    	char szClassName[128];
    	sprintf(szClassName,"VIEW_%i",m_iCountView);
    	m_iCountView++;
    
    	RegisterClass(hInstance,(WNDPROC)CViewProc,szClassName,IDI_MAINICON,IDC_ARROW);//Registrier deine Classe
    
    	HWND hWnd	=   CreateWindowEx(
                    m_dwMainStyleEx,
                    szClassName,				          
                    lpszTitel,					             
                    m_dwMainStyle,
                    pRect->left,				  
    				pRect->top,
    				(pRect->right - pRect->left),
    				(pRect->bottom - pRect->top),
                    NULL,						      
                    (HMENU)NULL,				       
    				hInstance,				              
                    NULL);                    
    
    	::ShowWindow(hWnd, nCmdShow);
    
    	return hWnd;
    }
    

    aufrufen tu ich die obere funktion so

    for(int iloop =0; iloop <= 10;iloop++)
    {
    	RECT rc;
    	rc.left		= 0 + (iloop*10);
    	rc.top		= 0 + (iloop*10);
    	rc.right	= 450 + (iloop*10);
    	rc.bottom	= 400 + (iloop*10);
    
    	HWND hWndParent = GetParent();
    	HWND hWnd	= GetDlgItem();
    	HINSTANCE hInstance = (HINSTANCE) GetWindowLong(hWndParent,GWL_HINSTANCE);
    
    	CCView *pView = new CCView();
    	HWND hView = pView->CreateDlg(hInstance,hWnd,SW_SHOW,lpszFilePath,&rc);
    	delete pView;
    
    }
    

    die eigenen funktionen GetParent, GetDlgItem & lpszFilePath liefern jeweils den richtigen wert.

    Kann mir dabei jemand helfen??
    🙄


Anmelden zum Antworten