Cursor "Kreuz"



  • hallo,

    ich habe bei der Forumssuche folgende Möglichkeiten gefunden wie man einfach seinen Cursor ändern kann:

    BeginWaitCursor(); 
    EndWaitCursor();
    
    SetCursor(LoadCursor(0, IDC_WAIT));
    

    ich möchte aber nun gern als cursor ein kreuz nehmen mit dem man in diagrammen besser arbeiten kann. ich glaub das gibts auch standartmässig in windows. mir fehlt jetzt bloß die passende IDC bzw. der passende befehl

    hoffe ihr könnt mir helfen 🙂

    mfg, TFTS



  • MSDN lesen hilft:

    Value Description
    IDC_APPSTARTING Standard arrow and small hourglass
    IDC_ARROW Standard arrow
    IDC_CROSS Crosshair
    IDC_HAND Hand
    IDC_HELP Arrow and question mark
    IDC_ICON Obsolete
    IDC_NO Slashed circle
    IDC_SIZE Obsolete; use IDC_SIZEALL
    IDC_SIZEALL Four-pointed arrow pointing north, south, east, and west
    IDC_SIZENESW Double-pointed arrow pointing northeast and southwest
    IDC_SIZENS Double-pointed arrow pointing north and south
    IDC_SIZENWSE Double-pointed arrow pointing northwest and southeast
    IDC_SIZEWE Double-pointed arrow pointing west and east
    IDC_UPARROW Vertical arrow
    IDC_WAIT Hourglass

    💡



  • jo sorry... ich hab da bis jetz noch nie was gefunden ... oder die erklärung dazu nicht verstanden. deswegen frag ich lieber hier bzw. suche hier.

    das war jetzt ein kompliment ans forum 😉

    danke!

    mfg, TFTS



  • jetzt habe ich noch das problem, wenn ich diesen setcursor befehl in meine onmousemove funktion einsetze, dass der cursor da ab und zu zum standard-arrow flackert ... ich vermute mal der setcursor befehl kommt standardmäßig woanders hin, nur wo? und wie kann ich dann noch bestimmen dass der cross-cursor nur in einem bestimmten bereich meines fenster auftreten soll

    danke schonmal

    mfg, TFTS



  • BOOL CMainWindow::OnSetCursor (CWnd* pWnd, UINT nHitTest,
        UINT message)
    {
        if (nHitTest == HTCLIENT) {
            DWORD dwPos = ::GetMessagePos ();
            CPoint point (LOWORD (dwPos), HIWORD (dwPos));
            ScreenToClient (&point);
            CRect rect;
            GetClientRect (&rect);
            ::SetCursor ((point.y < rect.Height () / 2) ?
                m_hCursorArrow : m_hCursorIBeam);
            return TRUE;
        }
        return CFrameWnd::OnSetCursor (pWnd, nHitTest, message);
    }
    

    Aus Programming Windows with MFC | ISBN: 1572316950 Seite 140

    Damit gibt es verschiedene Cursor für die obere und die untere hälfte des fensters. 🙂



  • funktioniert wie immer nicht ... wenn ich das in meiner klasse einfüge bekomm ich zig fehlermeldungen ... naja, war ja nich so wichtig mit dem kreuz



  • Hast du den Rest, der zu der Funktion gehört auch eingebaut?

    Das ist ein Messagehandler, guck doch mal im Klassenassistenten. (Oder kauf das Buch - ich weiß nicht, ob ich einfach so noch mehr hier rein kopieren darf.)



  • du, ich mach hier mein praktikum als student für 5 Monate und bekomme kein Geld dafür, dass ich mich hier mit dem Programm rumschlage. Da kauf ich mir nicht noch ein teures Buch. Wär schön gewesen, wenns einfach zu machen wär, aber wies ausschaut ist es doch relativ kompliziert

    danke dir trotzdem

    mfg, TFTS



  • Könnte ich deine Mailadresse sehen, könnte ich dir den Rest des Kapitels schicken... 🙄



  • vielleicht kannst du sie jetzt sehen 😉

    würde mich freuen wenn du es mir schicken könntest,

    danke schon mal

    mfg, TFTS

    Emailadresse wurde von mir (unix_tom) gelöscht. Auch für den Inhalt von Büchern gilt Urheberrecht. Macht das unter euch aus aber nicht im Forum.


Anmelden zum Antworten