Farbwert aktualisieren



  • und wie bitte ich habe noch nie einen Timer geschrieben.



  • geschrieben? Man muss die OnTimer Methode überscheiben und dann den Timer mit SetTimer(1,1000,NULL); starten. Weiteres zum Thema findest bei MSDN.



  • WM_TIMER hinzufügen
    SetTimer(...) starten
    KillTimer(...) beenden

    ...oder in den MFC-FAQ 🙂



  • Hi!
    Ich habe jetzt nen Timer hinzugefügt bekomme aber Fehlermeldungen. Kannmir wer von auch helfen?

    Hier der Code:

    SetTimer(1,2,NULL);                     //definition in void CFirststepView::OnInitialUpdate()
    
    void CFirststepView::OnTimer(UNIT nIDEVENT)
    {
    	if(nIDEvent == 1)
    		{
    		COLORREF rgb; 
    		CClientDC dc(this); 
    		HDC hdc= dc.GetSafeHdc();
    		unsigned char Rot=0,Grun=0,Blau=0;
    		UpdateData(TRUE);
    		rgb = GetPixel(hdc,150,450);
    		UpdateData(FALSE);
    		Rot=GetRValue(rgb);
    		Grun=GetGValue(rgb);
    		Blau=GetBValue(rgb);
    		CString RotV;
    		CString GrunV;
    		CString BlauV;
    		int i=0;
    		RotV.Format("%d",Rot);
    		GrunV.Format("%d",Grun);
    		BlauV.Format("%d",Blau);
    		i++;
    		UpdateData(TRUE);
    		ob->drawText( RGB(255,0,0),  200, 5, RotV );
    		ob->drawText( RGB(255,0,0),  200, 20, GrunV );
    		ob->drawText( RGB(255,0,0),  200, 40, BlauV );
    		ob->drawLine( RGB(Rot,Grun,Blau),  200, 60, 220, 60);
    		}
    	else
    		{
    		};
    }
    

    Die Fehlermeldungen:

    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(237) : 
    error C2065: 'UNIT' : nichtdeklarierter Bezeichner
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(237) : 
    error C2146: Syntaxfehler : Fehlendes ')' vor Bezeichner 'nIDEVENT'
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(237) : 
    error C2182: 'OnTimer' : Ungueltige Verwendung des Typs 'void'
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(237) : 
    error C2350: 'CFirststepView::CView::CWnd::OnTimer' ist kein statisches Element
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(237) : 
    error C2059: Syntaxfehler : ')'
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(238) : 
    error C2143: Syntaxfehler : Fehlendes ';' vor '{'
    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(238) : 
    error C2447: Funktionskopf fehlt - Parameterliste im alten Stil?
    

    HIIIIIIIIIIIIIIIIIIILLLLLLLLLLLLLLLFFFFFFFFFFFFFFFFFEEEEEEEEEEEEEEE!!!!!!!!!!!!!!



  • moin

    sind alle Includedateien vorhanden?????



  • Ansich schon welche brauch den der TIMER?



  • hat mit header nichts zu tun

    void CFirststepView::OnTimer(UNIT nIDEVENT) 
    {
    //...
    }
    

    es heisst UINT nIDEvent



  • Habe den Code jetzt geändert und bekomme diese Fehlermeldung zum oberen Code:

    C:\Programme\The Imaging Source Europe GmbH\IC Imaging Control 1.4\Firststep\FirststepView.cpp(238) : error C2509:
    'OnTimer' : Member-Funktion nicht in 'CFirststepView' deklariert
            c:\programme\the imaging source europe gmbh\ic imaging control 1.4\firststep\firststepview.h(13) : 
    Siehe Deklaration von 'CFirststepView'
    




  • Danke Shol!

    Hatte vergessen die Funktion mit dem Assi zu erstellen.

    Bekomme wenn ich die Cam einwenig schneller bewege wieder Farbwerte kurzfristig zwische 700 und 999 ist das überhaupt möglich oder liegt das vieleicht an der Cam das die nur SW ist und nicht Farbig, dass sich das Problem mit einer Farbcam vonselbst behebt.


Anmelden zum Antworten