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!