原帖及讨论:http://bbs.bc-cn.net/dispbbs.asp?boardid=5&id=124611
/*********************************************************************** ╭═══════════════╮ ║ ║ ╭══════┤ 清清凉 ├══════╮ ║ ║ ║ ║ ║ ╰═══════════════╯ ║ ║ ║ ║ ║ ║ 声明:本程序由清清凉修改整理 ║ ║ 说明: ║ ║ ║ ║ C语言交流群:31545052 (唯C联盟) ║ ║ 计算机编程交流群:31544991 ║ ║ 本人QQ:527274766 ║ ║ 多多交流,共同进步! ║ ║ —— 0501xql ║ ║ ║ ║ ╭───────────────────────╮ ║ ╰══┤ E-mail:0501xql@163.com ├══╯ ╰───────────────────────╯ ***********************************************************************/
/* ----- C语言图形模式编程,个性鼠标。 -----*/
int Msinit() { /* 初始化鼠标*/ int recored;
regs.x.ax=0; int86(0x33,®s,®s); recored=regs.x.ax; if(recored==0) { printf("Mouse not found !\n"); getch();return 0; } regs.x.ax = 1; /* 显示鼠标*/ int86(0x33,®s,®s); return recored; }
void MskindMath() /*计算鼠标的样子*/ { /*Point hotspot[]={{0,11},{0,0},{4,0},{4,0}};热点*/ int i,j,jj,k; int full,kind; long UpNum[2][16] = {/* hand */ 0xf3ff,0xe1ff,0xe1ff,0xe1ff, 0xe001,0xe000,0xe000,0xe000, 0x8000,0x0000,0x0000,0x0000, 0x0000,0x0000,0x8001,0xc003,
0x3fff,0x1fff,0x0fff,0x07ff,/* arrow箭头 */ 0x03ff,0x01ff,0x00ff,0x007f, 0x003f,0x00ff,0x01ff,0x10ff, 0x30ff,0xf87f,0xf87f,0xfc3f, }; long DownNum[2][16]={/* hand */ 0x0c00,0x1200,0x1200,0x1200, 0x13fe,0x1249,0x1249,0x1249, 0x7249,0x9001,0x9001,0x9001, 0x8001,0x8001,0x4002,0x3ffc,
0x0000,0x4000,0x6000,0x7000,/* arrow箭头 */ 0x7800,0x7c00,0x7e00,0x7f00, 0x7f80,0x7e00,0x7c00,0x4600, 0x0600,0x0300,0x0300,0x0180, }; kind = (Mskind>>1)%2; /* 手形还是箭头*/ full = Mskind%2; /* 是否空心*/
for(i=0;i<16;i++) { j=jj=15; while(UpNum[kind][i]!=0) { up[i][j]=UpNum[kind][i]%2; j--; UpNum[kind][i]/=2; } while(DownNum[kind][i]!=0) { down[i][jj--]=DownNum[kind][i]%2; DownNum[kind][i]/=2; } for(k=j ;k>=0;k--) up [i][k]=0; for(k=jj;k>=0;k--) down[i][k]=0; for(k=0;k<16;k++) { /*四种组合方式*/ if(up[i][k]==0&&down[i][k]==0) { /* 是否为空心*/ if(full) mouse_draw[i][k]=1; else mouse_draw[i][k]=2; }
如果您对本文有任何疑问或者建议,请到讨论区发表您的意见:
>>
论坛入口 <<
上一页12 3 4 5 下一页
上一篇:C语言优化双色球自选程序的小技巧 下一篇:阶乘计算器改进版
|