Diskuze: C++ Jak na myš ?

C a C++ C a C++ C++ Jak na myš ?

Aktivity (1)
Avatar
Caster
Člen
Avatar
Caster:5. června 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. června 11:57
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Caster
Luboš Satik Běhounek:5. června 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. června 13:07
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Odpovídá na Luboš Satik Běhounek
Caster:5. června 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. června 17:29
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Caster
Luboš Satik Běhounek:5. června 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  +1 5. června 17:33
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Odpovídá na Luboš Satik Běhounek
Caster:5. června 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  -3 5. června 18:08
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Caster
Luboš Satik Běhounek:5. června 18:40

Dobre, tak jinak, co uz mas? :)

Nahoru Odpovědět  +1 5. června 18:40
https://www.facebook.com/peasantsandcastles/
Avatar
Radek Chalupa:5. června 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. června 18:42
 
Nahoru Odpovědět 5. června 18:40
Avatar
Caster
Člen
Avatar
Odpovídá na Radek Chalupa
Caster:5. června 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. června 20:54
Avatar
Luboš Satik Běhounek
Autoredaktor
Avatar
Odpovídá na Caster
Luboš Satik Běhounek:5. června 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. června 21:36
https://www.facebook.com/peasantsandcastles/
Avatar
Caster
Člen
Avatar
Caster:5. června 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. června 21:54
Avatar
Peter Mlich
Člen
Avatar
Peter Mlich:6. června 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. června 8:03
Avatar
Caster
Člen
Avatar
Odpovídá na Peter Mlich
Caster:6. června 9:10

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

 
Nahoru Odpovědět 6. června 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.