我估计你分数给的在高也没人回答。来个这样的代码太麻烦了。而且百度金币用处也不大。
在桓仁等地区,都构建了全面的区域性战略布局,加强发展的系统性、市场前瞻性、产品创新能力,以专注、极致的服务理念,为客户提供成都网站建设、网站设计 网站设计制作按需求定制制作,公司网站建设,企业网站建设,品牌网站设计,成都全网营销,成都外贸网站建设,桓仁网站建设费用合理。
不过,我可以写几个鼠标函数给你参考一下。
首先了解一下鼠标的中断。
_ax=0x01
表示显示光标
_ax=0x02
停止显示光标
_ax=0x03
读取光标位置与案件
_ax=0x04
设置光标位置
所以啊。根据这四个中断,有以下几个函数
----------------------------------------------------
void
mouseon(void)//鼠标光标显示
{
_ax
=
0x01;
geninterrupt(0x33);
}
----------------------------------------------------
void
mouseoff(void)//鼠标光标隐藏
{
_ax
=
0x02;
geninterrupt(0x33);
}
---------------------------------------------------
void
mousesetxy(int
x,int
y)//设置当前位置
{
_cx
=
x,
_cd
=
y;
_ax
=
0x04;
geninterrupt(0x33);
}
---------------------------------------------------
int
leftpress(void)//鼠标左键按下
{
_ax
=
0x33;
geninterrupt(0x33);
return(_bx1);
}
-----------------------------------------------------
鼠标右键的应该也会了吧。不过要return(_bx2);
-----------------------------------------------------
void
mousegetxy(void)//得到当前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要复制粘贴,打字打得手疼。
k=k0xff?0x00ff:k8;其实就是
if(k0xff) {
k=0x00ff;
}else {
k=k8;
}的简写。
其实0xff和0x00ff是一样的,都表示同一个十六进制的值。
书上这么写,没有错;至于为什么,就不好说了。
可能是让你多学点知识,也可能是现在很多书其实在编写时并不是很认真的。毕竟尽信书不如无书!
后面的k8是把0xff的值右移8位,达到计算的目的(具体什么目的要看具体内容)
添加WM_KEYDOWN函数。在函数体中case WM_KEYDOWN: if (wParam==VK_LEFT)//方向键左 { rect1.left-=10; rect1.right-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_RIGHT)//方向键右 { rect1.left+=10; rect1.right+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_UP)//方向键上 { rect1.top-=10; rect1.bottom-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_DOWN)//方向键下 { rect1.top+=10; rect1.bottom+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_PRIOR)//PG UP { rect1.top-=10; rect1.bottom-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_NEXT)//PG DN { rect1.top+=10; rect1.bottom+=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_HOME)//HOME { rect1.left-=10; rect1.right-=10; InvalidateRect (hWnd,NULL,TRUE); } else if (wParam==VK_END)//END { rect1.left+=10; rect1.right+=10; InvalidateRect (hWnd,NULL,TRUE); } break;
这个程序应该满足你的要求吧。
#include stdio.h
#include conio.h
int main(void)
{
while (1)
{
if (!kbhit())
printf("1");
else
{
char c = getch();
if (c == 'a')
{
putchar('2');
getch();
}
}
}
return 0;
}