Bei "MouseOver" Cursor wechseln



  • Hi Leute!
    Ich möchte, dass beim "MouseOver" über einem CStatic der Cursor gewechselt wird zu einer Hand.

    Ich habs schon mit CStatic::SetCursor() probiert, aber irgendwie funktioniert's so nicht!



  • Schau dir mal WM_SETCURSOR an. 🙂



  • estartu_de schrieb:

    Schau dir mal WM_SETCURSOR an. 🙂

    Ja...das hab ich schon gemacht. Ich weiß aber nicht so recht mit dem Etwas anzufangen. Ich habs mal mit folgendem Code probiert (ohne Erfolg):

    if(pWnd->GetDlgCtrlID()==IDC_Link) // IDC_Link ist das CStatic
    {
        cStaticLink.SetCursor( ::LoadStandardCursor(IDC_CROSS)); // cStaticLink ist die Membervariable von IDC_Link
    }
    }
    

    Aber es muss doch auch ohne WM_SETCURSOR gehen! Oder 😕
    Leider funktioniert's auch nicht, wenn man cStaticLink.SetCursor() in OnInitDialog() reinschreibt.



  • Hier hast du mal ein Beispiel von mir es funktioniert zwar nur kurzfristig aber immer hin:

    BOOL DATEINAME::OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message) 
    {
    	//Wenn Cursor gesetzt, TRUE zurückgeben
    	if(m_bCursor)
    		return TRUE;
    	else
    
    	return CDialog::OnSetCursor(pWnd, nHitTest, message);
    }
    
    void CTag3Dlg::OnRButtonDown(UINT nFlags, CPoint point) 
    {
    	//Handle zum anzuzeigenden Cursor
    	HCURSOR lhCursor;
    	//Sanduhrzeiger laden
    	lhCursor = AfxGetApp() -> LoadStandardCursor(IDC_WAIT);
    	//Bldschirmcursor setzen
    	SetCursor(lhCursor);
    	CDialog::OnRButtonDown(nFlags, point);
    }
    

    Ich hoffe das war dir ne Hilfe, amsonsten kann ich ja versuchen die weiter zu helfen.

    mfg Govedar



  • hier mal n auszug aus meinem proggi.

    BOOL CSheriffShooterDlg::PreTranslateMessage(MSG* pMsg) 
    {
    	// TODO: Speziellen Code hier einfügen und/oder Basisklasse aufrufen
    
    	if ((pMsg->hwnd == GetDlgItem(IDC_INFO)->m_hWnd) && (pMsg->message == WM_MOUSEMOVE))
    	{ 
    		::SetCursor(AfxGetApp()->LoadCursor(IDC_LINKCURSOR));
    	} 
    
    	else if ((pMsg->hwnd == GetDlgItem(IDC_MOORHUHN)->m_hWnd) && (pMsg->message == WM_MOUSEMOVE))
    	{ 
    		::SetCursor(AfxGetApp()->LoadCursor(IDC_LINKCURSOR));
    	} 
    
    	else if ((pMsg->hwnd == GetDlgItem(IDC_CHECK)->m_hWnd) && (pMsg->message == WM_MOUSEMOVE))
    	{ 
    		::SetCursor(AfxGetApp()->LoadCursor(IDC_LINKCURSOR));
    	} 
    
    	else if ((pMsg->hwnd == GetDlgItem(IDC_PHENOMEDIA)->m_hWnd) && (pMsg->message == WM_MOUSEMOVE))
    	{ 
    		::SetCursor(AfxGetApp()->LoadCursor(IDC_LINKCURSOR));
    	} 
    
    	else if (pMsg->message == WM_MOUSEMOVE)
    	{ 
    		::SetCursor(AfxGetApp()->LoadCursor(IDC_CURSOR));
    	} 
    
    	return CDialog::PreTranslateMessage(pMsg);
    }
    


  • Danke für die Codebeispiele und eure Hilfe! habt mir echt weitergeholfen! 👍


Anmelden zum Antworten