Funzioni C per gestire l'aspetto del cursore in DOS




#include <dos.h>
#include <conio.h>


void setcursor(unsigned int tipo);
void cambia_cursore(int insmode);
void initcursor(void);
unsigned int getcursor(void);

unsigned int oldcursor,shortcursor,tallcursor,nocursor=0x2000;


void setcursor(unsigned int tipo)
/* Setta l'aspetto del cursore */
{
 union REGS val;
 val.h.ah = 1;
 val.x.cx = tipo;
 int86(0X10, &val, &val);
}

unsigned int getcursor(void)
/* Restituisce l'aspetto del cursore*/
{
 union REGS val;
 val.h.ah = 3;
 val.h.bh = 0;
 int86(0X10, &val, &val);
 return(val.x.cx);
} 

void cambia_cursore(int insmode)
/* Cambia l'aspetto del cursore basandosi sull'attuale modalità di inserimento*/
{
 if (insmode)
  setcursor(tallcursor);
 else
  setcursor(shortcursor);
}

void initcursor(void)
/*Inizializza i diversi tipi di cursore*/
{
struct text_info ti;
gettextinfo(&ti);
oldcursor=getcursor();
if(ti.currmode==MONO){
			shortcursor=0x0A0C;
			tallcursor=0x090C;
			}
else{
	shortcursor=0x0607;
	tallcursor=0x0507;
	}
}






Home page


Realizzato da Andrea Nazzaro.

Ultimo aggiornamento 30/09/1999