Šta je novo?

Problem sa GetCursorPos() funkcijom

psycho84

Slavan
Učlanjen(a)
03.12.2007
Poruke
178
Poena
320
Moja oprema  
CPU & Cooler
Thermalright Assain King 90
Matična ploča
MSI B550M Pro-VDH Wifi
RAM
2x16GB 3000MHz G.Skill Aegis
GPU
RX6800 16GB Powercolor Reaper
Storage
WD SN550 1TB + Toshiba Canvio Basics external 3TB
Zvuk
Integrated + EIDA 9038D
PSU
Seasonic SGX 500W SFX-L
Kućište
SKTC HX Box 100
Monitor
Lenovo ThinkVision T24v 24"
Miš & tastatura
Drevo Gramr full RGB 75% mechanical Gateron Brown, Logitech Triathlon + MS IMO 1.1a
Ostale periferije
HifiMan Sundara CB
Mobilni telefon
iPhone 13 mini
Pristup internetu
  1. Optički internet
  2. Mobilni internet
Zanima me da li postoji nesto sto se negdje u okviru project settings-a ili nekih drugih podesavanja a da moze da utice na to kako GetCursorPos radi...Znaci u dvije aplikacije mi radi kako treba dok u drugoj ne mogu da dobijem ono sto mi treba a koristim ih na potpuno isti nacin u sve tri aplikacije...

Dakle kod je otprilike ovakav:
Kod:
CPoint myPoint;
GetCursorPos(&myPoint);
CRect window_rect;
::GetWindowRect(GetSafeHwnd(),window_rect);
object->RButtonDown(&window_rect, nFlags, myPoint);

Funkcija RButtonDown na kraju radi preracunavanje datih koordinata od GetCursorPos() u oblik koordinata za OpenGL i odredjuje da li postoji nesto na toj lokaciji gdje je kliknuto...Uglavnom potpuno ovakav isti kod radi u dvije druge aplikacije kako treba i nalazi ono sto treba da nadje na lokaciji gdje je kliknuto, a ja ne mogu da uhvatim u cemu je caka...

Hvala unaprijed na korisnim savjetima 🙂
 
GetCursorPos vraca screen koordinate pointera. Pre nego sto pozoves RButtonDown, konvertuj koordinatu u prostor prozora koji sadrzi OpenGL view, tj. WINAPI ScreenToClient.
 
GetCursorPos vraca screen koordinate pointera. Pre nego sto pozoves RButtonDown, konvertuj koordinatu u prostor prozora koji sadrzi OpenGL view, tj. WINAPI ScreenToClient.

Probao i ne ide...Kazem na potpuno isti nacin koristim u druge dvije aplikacije i tamo radi a u trecoj ne...Da li je problem mozda to sto mi se ovaj kod kod druge dvije aplikacije poziva u metodi klase koja je naslijedila CView dok u trecoj je u metodi klase koja je naslijedila CDialog. A i mislim ipak da mi je za preracunavanje koordinata kursora potrebna apsolutna koordinata kao sto je vraca GetCursorPos a ne ova u okviru prozora...Debagovanjem sam utvrdio da mi nekako masa koordinatu za malo jer kad treba da prepozna neki objekat na slici budu 3 od 4 potrebna uslova zadovoljena...
 
Upravo taj problem za koji ti yooyo kaze bi mogao da stvori laznu sliku da u jednoj aplikaciji radi kako treba a ustvari radi samo pod odredjenim slucajnim okolnostima. Kao npr. kada ta aplikacija radi u fullscreenu ili ti se progam upali u gornjem levom uglu pa su iste screen i client pocetne koordinate...

"masa koordinatu za malo"
Sta si ovde hteo reci? Mesa ili masi? 🙂

Ja bih probao sa GetCursorPos pa konverzijom u client koordinate pomocu ScreenToClient i umesto GetWindowRect stavi GetClientRect.
 
Upravo taj problem za koji ti yooyo kaze bi mogao da stvori laznu sliku da u jednoj aplikaciji radi kako treba a ustvari radi samo pod odredjenim slucajnim okolnostima. Kao npr. kada ta aplikacija radi u fullscreenu ili ti se progam upali u gornjem levom uglu pa su iste screen i client pocetne koordinate...

"masa koordinatu za malo"
Sta si ovde hteo reci? Mesa ili masi? 🙂

Ja bih probao sa GetCursorPos pa konverzijom u client koordinate pomocu ScreenToClient i umesto GetWindowRect stavi GetClientRect.

Htio sam reci masi po srbijanski, kod nas se to kaze masa...Kada ne pogadja nego suprotno 🙂
Probacu da promejnim sa GetClientRect i ScreenToClient pa da vidim radi li...Hvala na pomoci...
 
Ja bih probao sa GetCursorPos pa konverzijom u client koordinate pomocu ScreenToClient i umesto GetWindowRect stavi GetClientRect.

E uspjelo ovako sa ovim rjesenjem....Ipak mi je taj GetWindowRect pravio probleme... Hvala puno na pomoci...
 
Nazad
Vrh Dno