Reklama
Pokazuje wyniki od 1 do 11 z 11

Temat: [C++] Obługa myszy

  1. #1

    Data rejestracji
    2014
    Posty
    560
    Siła reputacji
    10

    Domyślny [C++] Obługa myszy

    Szukałem tego w necie ale dużo jest syfu do odfiltrowania. Potrzebuje warunek, który będzie czekał na wciśnięcie klawisza lewego klawisza myszy (tylko raz) . Jaka to funkcja, jak to napisać?


    Kod:
    if (WM_LBUTTONDOWN)
            {
                 KOD
            }

    void __fastcall TForm1::Button1Click(TObject *Sender)
    {
    klawisz=0;



    if (klawisz==0)
    {
    licznik++;
    klawisz= GetKeyState( VK_LBUTTON );
    GetCursorPos( & pos );
    Label1->Caption=pos.x;
    Label2->Caption=pos.y;
    Label3->Caption=klawisz;
    Label4->Caption=licznik;
    }
    licznik=0;
    }
    Dlaczego licznik nie jest zerowany? To jest przycisk, dlaczego po ponownym kliknięciu licznik nie jest zerowany?

    void __fastcall TForm1::Label4Click(TObject *Sender)
    {
    int licznik=0;
    for (int i=0; i<100000; i++) {
    licznik++;
    Label4->Caption=licznik; }
    }
    //---------------------------------------------------------------------------
    Dlaczego coś takiego nie zmienia wartości Label4 na "bieżąco"?
    Ostatnio zmieniony przez Hardware : 18-09-2016, 17:46

  2. #2
    Avatar Tibiarz
    Data rejestracji
    2008
    Położenie
    Tibiantis
    Wiek
    4
    Posty
    16,026
    Siła reputacji
    27

    Domyślny

    Kod:
    if(GetKeyState(VK_LBUTTON) < 0) {
    //kod
    }
    PS nie wiem co tam robisz, ale warunek sam z siebie nie "czeka". Jeśli program ma czekać, to musisz wrzucić to w pętlę.

  3. Reklama
  4. #3

    Data rejestracji
    2014
    Posty
    560
    Siła reputacji
    10

    Domyślny

    Cytuj tibia77 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    Kod:
    if(GetKeyState(VK_LBUTTON) < 0) {
    //kod
    }
    PS nie wiem co tam robisz, ale warunek sam z siebie nie "czeka". Jeśli program ma czekać, to musisz wrzucić to w pętlę.
    Niezbyt mi to działa. Mam przycisk, chce żeby po jego naciśnięciu program czekał na przyciśnięcie myszki i wtedy zapisał kordynaty, i jeszcze żeby po każdym naciśnięciu przycisku zmienne były zerowane. Jak to osiągnąć?

    Kod:
    while(klawisz < 0)
            {
            klawisz=GetKeyState(VK_RBUTTON);
            GetCursorPos( & pos );
            Label1->Caption=pos.x;
            Label2->Caption=pos.y;
            Label3->Caption=klawisz;
            Label4->Caption=licznik;
            licznik++;
            }

  5. #4
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    29
    Posty
    2,322
    Siła reputacji
    19

    Domyślny

    Ale to chyba musiałbyś używać sprawdzać czy przycisk został zwolniony, a nie wciśnięty? I w momencie kiedy został puszczony zapisać jego pozycję.
    https://msdn.microsoft.com/en-us/lib...(v=vs.85).aspx
    Kod:
    bool klawisz;
    klawisz = false;
    
    if(klawisz_wcisniety)
    {
        Label1->Caption=0;
        Label2->Caption=0;
        klawisz = true;
    }
    while (klawisz == true)
    {
    
    if(event_puszczonego_przycisku_myszy) 
    {
        GetCursorPos(&pos);
        Label1->Caption=pos.x;
        Label2->Caption=pos.y;
        klawisz = false;
    }
    
    }
    Ostatnio zmieniony przez kuba_k31 : 18-09-2016, 19:44
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  6. #5

    Data rejestracji
    2007
    Położenie
    :D
    Posty
    269
    Siła reputacji
    18

    Domyślny

    1. Podepnij pod przycisk jakiś timer
    2. Po kliknięciu na button -> timer.enabled = true
    3. W timerze klepnij kod sprawdzajacy czy LPM był klikniety i odczytywanie X i Y ( o ile klikniety)
    4. Odczytywanie X i Y przypisuje info do labeli.
    Bywalec forum od marca 2007 roku.

  7. #6
    Avatar Tibiarz
    Data rejestracji
    2008
    Położenie
    Tibiantis
    Wiek
    4
    Posty
    16,026
    Siła reputacji
    27

    Domyślny

    GetKeyState() zwraca < 0 tylko w momencie, gdy klawisz jest akurat wciśnięty. Więc ta twoja pętla "czeka" na zwolnienie klawisza, a nie wciśnięcie.
    Kod:
    while(true) {
       if(GetKeyState(VK_RBUTTON) < 0) {
          //kod
          break;
       }
       Sleep(1);
    }

  8. #7
    Avatar Wielkie Zło
    Data rejestracji
    2008
    Posty
    819
    Siła reputacji
    17

    Domyślny

    WinAPI, miłej zabawy. weź to napisz w czymś normalnym..
    Cytuj SedaN* napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    kiedys jak bylem gowniarz, jakies 11lat mialem to na quo vadis nie chcieli mnie wpuscic ale bylem z kumplem i jego ojcem wiec zagadal i weszlismy (w scenach hard mielismy oczy zakrywac.. ALE BYLEM TAKI SZALONY, ZE TEGO NIE ROBILEM :])
    Programiści Torga łączcie się! Zapraszamy:
    http://webchat.freenode.net/
    kanal: #torgdevs

  9. #8
    Avatar kuba_k31
    Data rejestracji
    2006
    Wiek
    29
    Posty
    2,322
    Siła reputacji
    19

    Domyślny

    Cytuj Wielkie Zło napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    WinAPI, miłej zabawy. weź to napisz w czymś normalnym..
    A jaka jest dobra alternatywa dla WinAPI? Hardware pisze pewnie tego swojego bota do Tibii i podpina sie dzieki WinAPI.
    @Wielkie Zło ;
    Cytuj Minsafo napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    domknąłem

  10. #9

    Data rejestracji
    2014
    Posty
    560
    Siła reputacji
    10

    Domyślny

    Cytuj Wielkie Zło napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    WinAPI, miłej zabawy. weź to napisz w czymś normalnym..
    A co to jest coś normalnego?

    Cytuj kuba_k31 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    A jaka jest dobra alternatywa dla WinAPI? Hardware pisze pewnie tego swojego bota do Tibii i podpina sie dzieki WinAPI.
    @Wielkie Zło ;
    Jeszcze się nigdzie nie podpiąłem dopiero raczkuje, ale jak masz jakieś info napisz pw.
    Ostatnio zmieniony przez Hardware : 20-09-2016, 21:37

  11. #10
    Avatar Wielkie Zło
    Data rejestracji
    2008
    Posty
    819
    Siła reputacji
    17

    Domyślny

    Cytuj kuba_k31 napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    A jaka jest dobra alternatywa dla WinAPI? Hardware pisze pewnie tego swojego bota do Tibii i podpina sie dzieki WinAPI.
    @Wielkie Zło ;
    tego nie wiedziałem, myślałem, że gość pisze jakąś desktopową appkę, gdzie bez sensu jest używać WinAPI, bo są liby dużo lepsze do takiego zastosowania. np. qt, gtk
    Cytuj SedaN* napisał Pokaż post
    Cytat został ukryty, ponieważ ignorujesz tego użytkownika. Pokaż cytat.
    kiedys jak bylem gowniarz, jakies 11lat mialem to na quo vadis nie chcieli mnie wpuscic ale bylem z kumplem i jego ojcem wiec zagadal i weszlismy (w scenach hard mielismy oczy zakrywac.. ALE BYLEM TAKI SZALONY, ZE TEGO NIE ROBILEM :])
    Programiści Torga łączcie się! Zapraszamy:
    http://webchat.freenode.net/
    kanal: #torgdevs

  12. #11
    Avatar Chels
    Data rejestracji
    2013
    Wiek
    30
    Posty
    2,824
    Siła reputacji
    13

    Domyślny

    do gui qt ale do obslugi pamieci bez winapi sie nie obejdzie mozesz sobie napisac jakis wrapper czy cos

Reklama

Informacje o temacie

Użytkownicy przeglądający temat

Aktualnie 1 użytkowników przegląda ten temat. (0 użytkowników i 1 gości)

Podobne tematy

  1. Chrome vs gesty myszy
    Przez zakius w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 0
    Ostatni post: 27-11-2012, 23:39
  2. Mozilla i koło od myszy
    Przez H5N1 w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 6
    Ostatni post: 28-05-2012, 16:51
  3. Prawy przycisk myszy zawiesza komputer
    Przez tyckaa w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 9
    Ostatni post: 01-04-2012, 23:21
  4. Sterowniki do myszy laserowej - problem!
    Przez ziomek620 w dziale Sprzęt i oprogramowanie
    Odpowiedzi: 0
    Ostatni post: 09-10-2011, 18:14
  5. Hotkey na myszy
    Przez barylarnold w dziale Tibia
    Odpowiedzi: 2
    Ostatni post: 25-03-2011, 15:12

Zakładki

Zakładki

Zasady postowania

  • Nie możesz pisać nowych tematów
  • Nie możesz pisać postów
  • Nie możesz używać załączników
  • Nie możesz edytować swoich postów
  •