Diskuze: C++ Jak na myš ?
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.

Člen

Zobrazeno 12 zpráv z 12.
//= Settings::TRACKING_CODE_B ?> //= Settings::TRACKING_CODE ?>
V předchozím kvízu, Online test znalostí C++, jsme si ověřili nabyté zkušenosti z kurzu.
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.
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ší.
dokud nevime pres jakou technologii to delas, jestli tam treba mas normalni
smycku zpracovani zprav nebo jak, tak moc neporadime
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.
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/
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).
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.
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
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);
}
Zobrazeno 12 zpráv z 12.