webForumDet fria alternativet

Mouse X, Y ?

10 svar · 503 visningar · startad av M@rtin

M@rtinMedlem sedan dec. 19992 085 inlägg
#1

Hur gör man för att kolla musens x och y position i tc++? Vilka include filer etc. behövs?

//M@rtin

SweyMedlem sedan apr. 20003 971 inlägg
#2

I vilken plattform?
Med Windows API använder du denna kod för att få fram musens skärmposition.
<font size="1" face="Verdana, Arial, Helvetica, sans-serif">Kod:<font size="1" face="Verdana, Arial, Helvetica, sans-serif" color="#666600">POINT p;
GetCursorPos(&p);
Eftersom musens fönsterposition skickas till det aktuella fönstret så behöver man sällan hämta positionen.

Include-filer? Det är gamla vanliga "windows.h" som gäller.

------------------
- Swey
Glömde jag säga snälla?

[Redigerat av Swey den 27 sep 2000]

WiNNeMedlem sedan maj 2000192 inlägg
#3

Om man använder tc++ är det troligtsvis Dos man kör.
Jag tror man använde nånting typ GetMousePos, kolla lite i hjälpen. Det var väldigt länge sedan man programmerade i Turbo C, typ 10 år sedan... :)

------------------
winne.net

SweyMedlem sedan apr. 20003 971 inlägg
#4

DOS? Då är det nog dax att byta plattform. DOS är dött.

------------------
- Swey
Glömde jag säga snälla?

M@rtinMedlem sedan dec. 19992 085 inlägg
#5

Hurvida dos e dött eller inte vet inte jag. Men det e tc+ vi proggar i skolan o det är det jag ska kunna så jag väntar med windows tills senare...

Ska försöka söka lite..

//M@rtin

WiNNeMedlem sedan maj 2000192 inlägg
#6

Dos kanske är gammalt men det är definitift inte dött. Du skulle bli förvånad om du visste hur många företag som fortfarande sitter och kör på sina Dos system, särskillt företag med få anställda, typ Bilmeckare, Bokningssystem på små hotell osv...

Här är lite urklipp ur min hex-editor jag skrev i TC för dos ett bar tag sedan. Hela källkoden finns att ladda ner från http://www.hbg.lth.se/~e94jwi/whe/index.htm

*Header filen*
**************
// Mouse routines ////////////////////////////////////////////////////////////
void mouse_init(void) { _AX=0; geninterrupt(0x33); _AX=7; _CX=8; _DX=631; geninterrupt(0x33); _AX=8; _CX=16; _DX=191; geninterrupt(0x33); _AX=1; geninterrupt(0x33); }
void mouse_show(void) { _AX=1; geninterrupt(0x33); }
void mouse_hide(void) { _AX=2; geninterrupt(0x33); }

* C filen *
***********
int mousex, // Mouse X koordinate (1-80)
mousey, // Mouse Y koordinate (1-25)

int check_mouse(void)
{
_AX=3;
geninterrupt(0x33);
if(_BX==1) { mousex=_CX/8+1; mousey=_DX/8+1; /* gotoxy(1,1); cprintf("%00.2d,%00.2d",mousex,mousey); */
if(mousex==1 && mousey==1) { textattr(7); quit(); }
/* F1 */ if(mousex>=3 && mousex<=9 && mousey==22) help();
/* F2 */ if(mousex>=12 && mousex<=18 && mousey==22 && save==1) save_sector();
/* F3 */ if(mousex>=21 && mousex<=27 && mousey==22) { if (save==1) save_sector(); new_file(); open_file(); fseek(f,0,SEEK_SET); fread(&sector,256,1,f); filepos=0; xx=0; yy=0; currentfile(); printscreen(); markor_on(); key_control(); }
return 0;
}

Aktivera musen med
mouse_Init(); // ska bara göras en gång
mouse_Show(); // visar pekaren

Stäng av pekaren med
mouse_Hide(); // Döljer pekaren

Kontrollera musens position med ett anrop till
check_mouse();

------------------
winne.net

MuzzafarathMedlem sedan apr. 20002 487 inlägg
#7

DOS? Då är det nog dax att byta plattform. DOS är dött.

Kanske är dött, men den är bra för att lära sig (skulle du verkligen rekommendera att en nybörjare ger sig på Windows programmering direkt?).

M@rtinMedlem sedan dec. 19992 085 inlägg
#8

Tack WiNNe!

Ska testa o se så att det funkar :)

//M@rtin

SweyMedlem sedan apr. 20003 971 inlägg
#9

Swey förklarar sig.

Vill man inte skapa grafiska Windows-program kan man göra konsol-program. I konsol-program kan man använda både Windows-funktioner och konsol-funktioner. Att skriva program för DOS är ingen bra idé eftersom DOS inte stöds av Windows 2000 och Windows ME som är de aktuella operativsystemen idag. Därför är DOS dödförklarat. :)

------------------
- Swey
Glömde jag säga snälla?

WiNNeMedlem sedan maj 2000192 inlägg
#10

Tror nog att de funktionerna för mus hantering hanteras av dos-emulatorn i Win2000, ska testa min Hex-Editor i Win2000 och ME ikväll. I'll keep you posted...

------------------
winne.net

WiNNeMedlem sedan maj 2000192 inlägg
#11

Dos-emulatorn i Win2000 klarar fint av de anrop som krävs för att aktivera musen i Dos-läge... Antar att DOS inte är så dött som vissa tror... :)

------------------
winne.net

124 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
122 ms — hämta tråd, inlägg och bilagor (db)