Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: C++ Jak na myš ?

Aktivity
Avatar
Caster
Člen
Avatar
Caster:5.6.2018 11:57

Zkusil jsem:

Chci docílit: Pohybem myši potřebuji přemisťovat čtverec po obrázku mapy Země, jehož velikost se může měnit otáčením kolečka na myši. Souřadnice čtverce pak budu dál zpracovávat programem (zda jsou ve čtverci na daném místě nějaké objekty).

 
Odpovědět
5.6.2018 11:57
Avatar
Odpovídá na Caster
Luboš Běhounek Satik:5.6.2018 13:07

v cem to delas?
Pokud tam neni zadna obsluha mysi, tak normalne zachytavej win messages pro pohyb/stisk tlacitek mysi.

Nejak obecne - pri stisku mysi si zkontroluj, ze tlacitko stisknul nad ctvercem a uloz si, s kterym ctvercem prave taha a pri mousemove pokud tahas s tim ctvercem, tak ho posouvej podle aktualni pozice mysi a pri uvolneni nastav tahanej ctverec treba na null.

Nahoru Odpovědět
5.6.2018 13:07
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Caster:5.6.2018 17:29

Díval jsem se na net, ale nenašel jsem prakticky žádný příklad, jak na to :-( Jde o C++ (Visual Studio). Jde mi o interakci s tou myší.

 
Nahoru Odpovědět
5.6.2018 17:29
Avatar
Odpovídá na Caster
Luboš Běhounek Satik:5.6.2018 17:33

dokud nevime pres jakou technologii to delas, jestli tam treba mas normalni smycku zpracovani zprav nebo jak, tak moc neporadime :)

Nahoru Odpovědět
5.6.2018 17:33
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Odpovídá na Luboš Běhounek Satik
Caster:5.6.2018 18:08

Nemám tam nic. Takovéto rady jsou o ničem... to si radši otevři jedno vychlazený a "neraď". Pomohl by mi třeba odkaz na nějaký (ukázkový) příklad.

 
Nahoru Odpovědět
5.6.2018 18:08
Avatar
Odpovídá na Caster
Luboš Běhounek Satik:5.6.2018 18:40

Dobre, tak jinak, co uz mas? :)

Nahoru Odpovědět
5.6.2018 18:40
https://www.facebook.com/peasantsandcastles/
Avatar
Radek Chalupa:5.6.2018 18:40

Pokud si nastuduješ alespoň základy (logiku fungování) Win API, myslím že budeš vědět jak na to, tady je odkaz na seriál o programování ve WinAPI https://www.radekchalupa.cz/…e-se-winapi/

Editováno 5.6.2018 18:42
 
Nahoru Odpovědět
5.6.2018 18:40
Avatar
Caster
Člen
Avatar
Odpovídá na Radek Chalupa
Caster:5.6.2018 20:54

Díky, to je přínosnější. Nicméně bych se z množství těch informací osypal. Neživím se programováním, potřebuji jen naprogramovat jednorázovou aplikaci která umožní na mapě světa pohyb čtverce (možná dvou čtverců - 2 oblasti) ovládaného myší, předat (s tím nemám problém) souřadnice středu čtverce a velikost čtverce funkci v assembleru a vykreslit cestu/y nalezených bóji (GPS souřadnice), které vrátí assembler. V assembleru jsem si naprogramoval hledání souřadnic v poli o 50 milionech řádcích (mám načteno v paměti pomoci VirtualAlloc) včetně rekurzivního merge sort 50 milionů __int32 čísel (cca 2,5 sekundy).

 
Nahoru Odpovědět
5.6.2018 20:54
Avatar
Odpovídá na Caster
Luboš Běhounek Satik:5.6.2018 21:36

A tu mapu světa tam chceš vykreslovat jak detailní a jakým způsobem?
Jinak pro daný úkol by možná skoro bylo jednodušší to napsat v c#, i jen primitivní grafická aplikace v C++ jsou desítky nebo spíš stovky řádků kódu - musíš vytvořit okno, obsluhovat zprávy, načíst obrázek mapy (což narozdíl od C# neuděláš na jednom řádku) atd...
Dneska jsem měl k večeři domácí pizzu s hermelínem a slaninou.

Nahoru Odpovědět
5.6.2018 21:36
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Caster:5.6.2018 21:54

Nyní mi to funguje tak, že do obslužného programu v C++ zadám souřadnice dvou oblastí, přeložím, spustím a dostanu výsledek, trasy bójí. Ty pak na netu převedu (Excel to KML) a zobrazím na Google Earth.
Nepřipadá mi, že by mělo být nějak složité zobrazit ve statickém okně přes celou obrazovku binární mapu světa, kurzorem si označit (čtverec vč. zoomu) jednu a druhou oblast, předat ty dvě oblasti assembleru a pak jen na mapě zobrazit trasy bójí podle GPS souřadnic pomocí barevné čáry. Díky setřídění dat a assembleru proběhne hledání rychlostí blesku, tj. trasy bójí by se měly interaktivně vynášet v reálném čase po zastavení pohybu kurzoru nad zájmovou oblastí.
Výsledek vypadá např. takto:
Mapa

 
Nahoru Odpovědět
5.6.2018 21:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6.6.2018 8:03

google = cpp mouse coord

POINT p;
if (GetCursorPos(&p))
{
    //cursor position now in p.x and p.y
}

google = cpp mouse coord visual studio
GetCursorInfo()
https://stackoverflow.com/…state-winapi
https://msdn.microsoft.com/…vs.110).aspx
https://msdn.microsoft.com/…vs.110).aspx?…

void MoveCursor()
{
   // Set the Current cursor, move the cursor's Position,
   // and set its clipping rectangle to the form.

   this->Cursor = gcnew System::Windows::Forms::Cursor( ::Cursor::Current->Handle );
   ::Cursor::Position = Point(::Cursor::Position.X - 50,::Cursor::Position.Y - 50);
   ::Cursor::Clip = Rectangle(this->Location,this->Size);
}
 
Nahoru Odpovědět
6.6.2018 8:03
Avatar
Caster
Člen
Avatar
Odpovídá na Peter Mlich
Caster:6.6.2018 9:10

Díky, podívám se na to.

 
Nahoru Odpovědět
6.6.2018 9:10
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.