progressbar erstellen u verwenden....



  • Du könntest auch einfach einen Dialog als Ressource zusammenklicken und den dann aufrufen, falls dir das lieber ist.

    PBM_SETPOS oder PBM_STEPIT

    Mit PBM_SETPOS kannst du eben direkt den Wert angeben, der gesetzt werden soll, mit PBM_STEPIT wird einfach nur einen Schritt weitergezähl (was in den meisten Fällen wohl reicht)



  • flenders schrieb:

    Du könntest auch einfach einen Dialog als Ressource zusammenklicken und den dann aufrufen, falls dir das lieber ist.

    PBM_SETPOS oder PBM_STEPIT

    Mit PBM_SETPOS kannst du eben direkt den Wert angeben, der gesetzt werden soll, mit PBM_STEPIT wird einfach nur einen Schritt weitergezähl (was in den meisten Fällen wohl reicht)

    ach ich mach das mal lieber ohne ressource! dann test ich das mal mit PBM_SETPOS...

    frage zum haupfenster:
    was mach ich mit hInstance, wenn ich da kein WinMain habe?

    wc.hInstance            = hInstance;                /* Programm ID (Parameter von WinMain)*/
    

    cu



  • Versuch's mal mit GetModuleHandle(NULL) 🙂



  • surf schrieb:

    frage zum haupfenster:
    was mach ich mit hInstance, wenn ich da kein WinMain habe?

    Ich warte gespannt auf den Moment, wo Du das "häßliche" Konsolenfenster "versteckt" haben willst und hier danach fragst... schließlich hast Du nun neben Deinem Konsolenfenster auch ein GUI-Fenster...

    Gibt es eigentlich einen Grund an einer Konsolenanwendung festzuhalten (und nicht auf GUI-Anwendung ohne Konsole umzuschwenken), oder ist das nur pures Ego?



  • Hepi schrieb:

    Ich warte gespannt auf den Moment, wo Du das "häßliche" Konsolenfenster "versteckt" haben willst und hier danach fragst... schließlich hast Du nun neben Deinem Konsolenfenster auch ein GUI-Fenster...

    Gibt es eigentlich einen Grund an einer Konsolenanwendung festzuhalten (und nicht auf GUI-Anwendung ohne Konsole umzuschwenken), oder ist das nur pures Ego?

    warum? das konsolenfenster macht mir nix aus...wenn ich das nimma brauche dann kommts weg! ich will die GUI mit xwidgets machen um portable zu werden...aber da muss ich mich erst einlesen...die progressbar brauch ich daweil nur fürs testen...

    cu



  • ////////////////////// Hautfenster erstellen //////////////////////////////// 
    
    	HWND        hWndMain;                               /* Handle auf unser Hauptfenster */ 
    	WNDCLASS    wc;                                     /* Struktur zum Fensterklassen bescheiben */ 
    
    	wc.style                = CS_HREDRAW | CS_VREDRAW;  /* Repaint bei Fenstergößenänderung */ 
    	wc.lpfnWndProc          = NULL;                  /* Nachrichtenbearbeitungs Funktion */ 
    	wc.cbClsExtra           = 0; 
    	wc.cbWndExtra           = 0; 
    	wc.hInstance            = NULL;                /* Programm ID (Parameter von WinMain)*/ 
    	wc.hCursor              = LoadCursor(NULL, IDC_ARROW); 
    	wc.hIcon                = LoadIcon(NULL, IDI_APPLICATION); 
    	wc.hbrBackground        = (HBRUSH) GetStockObject(WHITE_BRUSH); 
    	wc.lpszClassName        = "windowWndClass";                /* Klassenname (bei uns = Programmname) */ 
    	wc.lpszMenuName         = NULL; 
    
    	RegisterClass(&wc);                                 /* Fensterklasse anmelden */ 
    
    	hWndMain = CreateWindow("windowWndClass",                  /* Fenster erstellen */ 
    							"Titelleiste", 
    							WS_OVERLAPPEDWINDOW,        /* Fensterstil */ 
    							CW_USEDEFAULT,              /* X-Position */ 
    							CW_USEDEFAULT,              /* Y-Position */ 
    							CW_USEDEFAULT,              /* Breite */ 
    							CW_USEDEFAULT,              /* Höhe */ 
    							NULL, 
    							NULL, 
    							NULL,                  /* Programm ID */ 
    							NULL); 
    
    	ShowWindow(hWndMain, SW_SHOW);                     /* Fenster anzeigen */ 
    	UpdateWindow(hWndMain);                             /* Und ein Repaint  */ 
    
    	/////////////////////// Progressbar im Hauptfenster erstellen //////////////// 
    
    	HWND hProgress; 
    
    	// ProgressBar erzeugen 
    	//InitCommonControls(); 
    	INITCOMMONCONTROLSEX InitCtrlEx; 
    
    	InitCtrlEx.dwSize = sizeof(INITCOMMONCONTROLSEX); 
    	InitCtrlEx.dwICC  = ICC_PROGRESS_CLASS; 
    	InitCommonControlsEx(&InitCtrlEx); 
    
    	hProgress = CreateWindowEx(0, PROGRESS_CLASS, NULL, 
                               WS_CHILD | WS_VISIBLE | PBS_SMOOTH, 
                               20, 20, 260, 17, 
                               NULL, NULL, NULL, NULL); 
    
    	// Schrittläge einstellen 
    	SendMessage(hProgress, PBM_SETRANGE, 0, MAKELPARAM (0, 100)); 
    
    	SendMessage(hProgress, PBM_SETSTEP, (WPARAM) 10, 0); // mit jedem Schritt 10% weiter 
    
    	SendMessage(hProgress, PBM_STEPIT, 0, 0); // Befehl um einen Schritt zu machen
    

    bekomme den error:
    Die Anweisung in 0x00000000 verweist auf Speicher in 0x000000. Der Vorgang read konnte nicht auf dem Speicher ausgeführt werden

    hab mit dem debugger geschaut wo der fehler auftritt: bei hWndMain = CreateWindow(....)

    ich denk da sind eventuell die letzten zwei parameter falsch?? hm

    cu



  • er hat mir gerade den code geschickt. er hatte weder eine wndproc, noch eine message loop 🤡 👍



  • anti surf schrieb:

    er hat mir gerade den code geschickt. er hatte weder eine wndproc, noch eine message loop 🤡 👍

    die wndproc war in der anderen cpp;-)



  • @surf: Ist das Problem jetzt gelöst 😕



  • Der Absturz ist auf jeden Fall weg.

    @anti-surf: Dreckiger Lügner 😃


Anmelden zum Antworten