return -> WndProc



  • Guten Abend zusammen!
    Aus der WndProc heraus wird über AboutDlgProc ein Dialog geöffnet bzw. abgefragt.
    Sollte IDOK_EXIT gedrückt werden, dann muss sich das ganze Programm beenden.
    Wie gebe ich den Wert von IDOK_EXIT wieder an die WndProc zurück?

    Grüsse,
    Sotares

    BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
    {
    
    	switch(message)
    	{
    	case WM_INITDIALOG:
    		return TRUE;
    
    	case WM_COMMAND:
    		switch (LOWORD (wParam))
    		{
    
    		case IDOK_ABOUT: {
    			EndDialog(hDlg,0);
    			return TRUE; }
    
    		case IDOK_EXIT: {
    			EndDialog(hDlg,0);
    			return 1; }
    
    		case IDCANCEL_EXIT: {
    			EndDialog(hDlg,0);
    			return 1; }
    		}
    		break;
    
    	}
    
    	return FALSE;
    }
    


  • Über den 2. Parameter von EndDialog...



  • Neuerdings ist der Return-Wert einer Dialog-Prozedur i.A. übrigens INT_PTR CALLBACK (wg. der 64-Bit Kompatibilität). Ob das für Dich nun relevant ist, oder nicht, musst Du natürlich selbst entscheiden 😉 .



  • Danke für die Hilfestellung, nun läuft es!

    In der AboutDlgProc

    case IDOK_EXIT: { 
    		EndDialog(hDlg,(wParam));
    		return TRUE; }
    

    In der WndProc

    case ID_EXIT: {
       if(DialogBox(hInst, TEXT("Exit"), hWnd, AboutDlgProc)==IDOK_EXIT)
       {
       SendMessage(hWnd,WM_CLOSE,0,0);
       }
    }
    

    Mit freundlichen Grüssen,
    Sotares


Anmelden zum Antworten