ProgressBar in dialog

di il
7 risposte

ProgressBar in dialog

Ho creato un thread per visualizzare la mia ProgressBar in un'altra dialog

DWORD  WINAPI ThreadProc(LPVOID pParam)
{
	Dlg.DoModal(); //dialog che contiene la progressBar

	return 1;

}

void CModificaBollaDlg::OnBnClickedOk()
{
	
	HANDLE thread = CreateThread(NULL, 0, ThreadProc, this, 0, NULL);


/// funzioni///

	TerminateThread(thread, 0);
	
	CDialogEx::OnOK();
}


Però io adesso vorrei passare la posizione alla mia dialog che contiene la progressBar, come posso fare?

7 Risposte

  • Re: ProgressBar in dialog

    Ma perchè in un altro thread? Non ha senso dato che dipende da un valore che sta nel thread principale.

  • Re: ProgressBar in dialog

    24/10/2024 - oregon ha scritto:


    Ma perchè in un altro thread? Non ha senso dato che dipende da un valore che sta nel thread principale.

    Ho scelto di utilizzare un altro thread perchè mentre laProgress nell'altra dialog scorre continua il processo sotto, ma adesso non so come fare per cambiare i valori nella progress

  • Re: ProgressBar in dialog

    24/10/2024 - oregon ha scritto:


    Ma perchè in un altro thread? Non ha senso dato che dipende da un valore che sta nel thread principale.

    Adesso ho utilizzato un Timer nella mia ProgressBar, però vedo che utilizzando terminate Thread l'evento OnClose nella mia dialog che contiene la ProgressBar non è captato, come mai?

  • Re: ProgressBar in dialog

    Non ha senso usare un thread! Anzi è sbagliato

    Non sono due lavori indipendenti.

    Gestisci la ProgressBar nel ciclo del lavoro principale

  • Re: ProgressBar in dialog

    25/10/2024 - oregon ha scritto:


    Non ha senso usare un thread! Anzi è sbagliato

    Non sono due lavori indipendenti.

    Gestisci la ProgressBar nel ciclo del lavoro principale

    sì ma gestendola nel ciclo del lavoro principale e facendo la DoModal la mia dialog con la progressBar diventa bloccante..

    void CModificaBollaDlg::OnBnClickedOk()
    {
    	
    	HANDLE thread = CreateThread(NULL, 0, ThreadProc, this, 0, NULL);
    
    
    /// funzioni///  -----> funzioni che non potrebbero essere eseguite con la dialog bloccante
    
    	TerminateThread(thread, 0);
    	
    	CDialogEx::OnOK();
    }
  • Re: ProgressBar in dialog

    https://www.codeproject.com/Articles/1651/Tutorial-Modeless-Dialogs-with-MFC

  • Re: ProgressBar in dialog

    25/10/2024 - oregon ha scritto:


    https://www.codeproject.com/Articles/1651/Tutorial-Modeless-Dialogs-with-MFC

    ho creato una dialog modeless, ora ho il problema che non riesco a creare all'interno degli elementi e su internet non riesco a trovare un documento adeguato.

       
       void CModificaDlg::OnBnClickedOk()
    {
       CDlgPr dialog;
    
    
    	dialog.m_button = new CButton;
    
    	dialog.m_button->Create(_T("Rearrange"), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON, CRect(0, 0, 128, 32), this, IDC_BUTTON1); // here will create a button
    
    	dialog.Create(IDD_DIALOG20);
    
    	dialog.ShowWindow(SW_SHOW);
Devi accedere o registrarti per scrivere nel forum
7 risposte