Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht Das deutsche QBasic- und FreeBASIC-Forum
Für euch erreichbar unter qb-forum.de, fb-forum.de und freebasic-forum.de!
 
FAQFAQ   SuchenSuchen   MitgliederlisteMitgliederliste   BenutzergruppenBenutzergruppen  RegistrierenRegistrieren
ProfilProfil   Einloggen, um private Nachrichten zu lesenEinloggen, um private Nachrichten zu lesen   LoginLogin
Zur Begleitseite des Forums / Chat / Impressum
Aktueller Forenpartner:

Mauscursor

 
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen
Vorheriges Thema anzeigen :: Nächstes Thema anzeigen  
Autor Nachricht
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 15.08.2011, 14:55    Titel: Mauscursor Antworten mit Zitat

Moin,

hatte zwischenzeitlich mal eine kleine Mausroutine geschrieben gehabt um eigene Mauszeiger benutzen zu können und war später dann auf dieses Beispiel gestoßen was das ganze eindeutig vereinfacht:

http://www.freebasic-portal.de/code-beispiele/maus-tastatur/neuer-mauscursor-winapi-98.html

hab inzwischen ein wenig damit rumgespielt und funktioniert ja soweit ganz gut. Leider hab ich mit der WinAPI nie viel erfahrungen gesamelt und mich nun ein klein wenig versucht durchzulesen konnte aber nichts genaueres finden.

Da es um 'eigene' Mauscursor geht, bliebe eigentlich nur die
LoadCursorFromFile Funktion für mich, da ich nun aber nicht immer
endlos viele extra files verwenden wollte stellt sich hier die Frage ob
es auch eine Möglichkeit gibt den cursor aus einem Image oder ähnlichem neu zu setzen.
So eine art, Loadfrommemory oder sowas... ?
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
28398



Anmeldungsdatum: 25.04.2008
Beiträge: 1917

BeitragVerfasst am: 15.08.2011, 16:52    Titel: Antworten mit Zitat

Du kannst mit LoadCursor() einen Cursor aus einer Resource laden.
Dazu musst du nur eine .rc Datei erstellen, die die entsprechende Datei einbindet; Mit Tools wie ResEdit oder FBEdit geht das ganze etwas leichter von der Hand.
Code:
LoadCursor(GetModuleHandle(), MAKEINTRESOURCE(resource_id))

So in der Richtung
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Eternal_pain



Anmeldungsdatum: 08.08.2006
Beiträge: 1783
Wohnort: BW/KA

BeitragVerfasst am: 16.08.2011, 07:03    Titel: Antworten mit Zitat

Danke Dir, funktioniert perfekt so zwinkern

Test.rc:
Code:
#define Mouse1 999
Mouse1 CURSOR DISCARDABLE "E:/FreeBASIC/fedora-left-ptr.cur"


Beispiel:
Code:
'"<$fbc>" "<$file>" Maus-test.rc

#Include Once "windows.bi"
Dim Shared   WindowCursor As HCURSOR
Dim Shared   OldWinProc   As WNDPROC
Dim Shared   hwnd         As HWND

Declare Function CursorWinProc(ByVal hwnd As HWND, ByVal uMsg As UINT, ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT

Function CursorWinProc(ByVal hwnd As HWND    , ByVal uMsg As UINT, _
                       ByVal wParam As WPARAM, ByVal lParam As LPARAM) As LRESULT
    If uMsg = WM_SETCURSOR Then
        SetCursor(WindowCursor)
        Return 1
    End If

    Return CallWindowProc(OldWinProc, hwnd, uMsg, wParam, lParam)
End Function

Screen 19,32
    hwnd = GetForegroundWindow
    OldWinProc = Cast(WNDPROC, SetWindowLong(hwnd, GWL_WNDPROC, CLng(@CursorWinProc)))

    'WindowCursor = LoadCursor(NULL, IDC_HAND )
    'WindowCursor = LoadCursorFromFile("fedora-left-ptr.cur")
    WindowCursor = LoadCursor(GetModuleHandle(NULL), MAKEINTRESOURCE(999))

    Do
        If Multikey(&h01) Then Exit Do
    Loop


    SetWindowLong hwnd, GWL_WNDPROC, CLng(OldWinProc)
End


Hier gibts übrigens eine Menge netter Mauszeiger happy
http://www.rw-designer.com/cursor-library
_________________
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden E-Mail senden Website dieses Benutzers besuchen MSN Messenger
Badru
Gast





BeitragVerfasst am: 14.08.2012, 15:09    Titel: Antworten mit Zitat

Der Link für die Mauszeiger is ja cool, danke! Auch wenn das Thema hier wahrscheinlich eh tot ist... Ich dachte mir, sich bedanken is höflicher grinsen
Nach oben
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 14.08.2012, 15:12    Titel: Antworten mit Zitat

Badru: du bist ja recht neu im Forum, magst du nicht etwas zu Projekten erzählen, eventuell hast du ja was interessantes in Arbeit, für das du diese Mauszeiger brauchst.

Stell dich und deine Projekte doch mal vor. lächeln
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Badru
Gast





BeitragVerfasst am: 20.08.2012, 14:03    Titel: Antworten mit Zitat

Hey, ich bin noch ganz am Anfang und am Planen und hol mir erstmal einige Anregungen und Infos. Wenn ich etwas Vorzeigbares habe, worauf ich stolz sein kann, werd ichs sofort mit euch teilen lächeln
Nach oben
MOD
Fleißiger Referenzredakteur


Anmeldungsdatum: 10.09.2007
Beiträge: 1003

BeitragVerfasst am: 20.08.2012, 14:13    Titel: Antworten mit Zitat

Das Vorgehen ist ein wenig zweischneidig. Wir haben hier des Öfteren Neuzugänge, die erstmal kreuz und quer auf andere Posts ohne Sachbezug antworten und so Posts sammeln und den Zähler hochtreiben. Sobald eine gewisse Anzahl an Meldungen abgesetzt wurden, fängt das Spammen von diesem Account an.

Wir löschen sowas immer sehr zeitig und waren uns nach deinen ersten Posts nicht sicher. Einzig deine deutsche IP hat bisher eine Löschung des Accounts verhindert.

Ein bisschen mehr Informationen zu deinem Kenntnissstand/Plänen gibt uns natürlich mehr Sicherheit, sodass wir nicht befürchten müssen, bald eine Reihe von Spamnachrichten löschen zu müssen.

Dieser Grundverdacht tut mir zwar Leid, aber Foren haben heutzutage wirklich viel mit Spammern zu tun, nicht nur automatisierten sondern auch menschlichen, die dafür letztlich Provision kassieren.
Nach oben
Benutzer-Profile anzeigen Private Nachricht senden
Beiträge der letzten Zeit anzeigen:   
Neues Thema eröffnen   Neue Antwort erstellen    Das deutsche QBasic- und FreeBASIC-Forum Foren-Übersicht -> Windows-spezifische Fragen Alle Zeiten sind GMT + 1 Stunde
Seite 1 von 1

 
Gehe zu:  
Du kannst keine Beiträge in dieses Forum schreiben.
Du kannst auf Beiträge in diesem Forum nicht antworten.
Du kannst deine Beiträge in diesem Forum nicht bearbeiten.
Du kannst deine Beiträge in diesem Forum nicht löschen.
Du kannst an Umfragen in diesem Forum nicht mitmachen.

 Impressum :: Datenschutz