Hur gör man för att kolla musens x och y position i tc++? Vilka include filer etc. behövs?
//M@rtin
10 svar · 503 visningar · startad av M@rtin
Hur gör man för att kolla musens x och y position i tc++? Vilka include filer etc. behövs?
//M@rtin
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]
DOS? Då är det nog dax att byta plattform. DOS är dött.
------------------
- Swey
Glömde jag säga snälla?
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
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(§or,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
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?).
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?