中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
中国DOS联盟论坛 » DOS开发编程 & 发展交流 (开发室) » 鼠标图形光标在NT/2K/XP下不显示的问题。 
作者:
标题: 鼠标图形光标在NT/2K/XP下不显示的问题。  上一主题 | 下一主题
帅哥
初级用户




积分 115
发帖 4
注册 2003-7-5
状态 离线
『楼 主』:  鼠标图形光标在NT/2K/XP下不显示的问题。 

请教高手如何解决33H鼠标图形光标在NT/2K/XP下不显示的问题。

我做了很多基于33H的DOS图形方式应用软件,大部分是640*480*16色模式+图形鼠标控制。

这些软件在纯DOS或者95/98/ME中运行都非常正常,但在NT/2K/XP下运行,鼠标光标始终不能显示,但除此之外软件其他功能是正常的。虽然看不见鼠标光标,但鼠标的实际定位是正常的,软件中可以检测到鼠标光标当前的位置,也能检测到按键动作。

我试过在NT/2K/XP下,调用33H的showmousecursor和hidemousecursor功能,都是无效的。

试过自行编写光标显示的中断程序,但因为使用的是时间中断,每秒只能显示几十次,实际应用中频闪的现象很严重。

请教版主和众高手如何解决此问题?

谢谢。


[此贴子已经被作者于2003-7-9 1:05:44编辑过]




2003-7-9 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Wengier
系统支持

“新DOS时代”站长


积分 27734
发帖 10521
注册 2002-10-9
状态 离线
『第 2 楼』:  

最好的解决办法嘛,,应该是跟Microsoft公司联系一下,让它们修正WinNT/2K/XP中的这个BUG了。



Wengier - 新DOS时代

欢迎大家来到我的“新DOS时代”网站,里面有各类DOS软件和资料,地址:
http://wendos.mycool.net/

E-Mail & MSN: wengierwu AT hotmail.com (最近比较忙,有事请联系DOSroot和雨露,谢谢!)

2003-7-9 00:00
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (29206679)  编辑帖子  回复  引用回复
帅哥
初级用户




积分 115
发帖 4
注册 2003-7-5
状态 离线
『第 3 楼』:  



  Quote:
以下是引用Wengier在2003-7-9 9:04:15的发言:
最好的解决办法嘛,,应该是跟Microsoft公司联系一下,让它们修正WinNT/2K/XP中的这个BUG了。

谢谢回复。联系M$解决这个问题几乎是不可能的事。我查了很久,也没有发现M$有相关文档说明关于33H中断在纯32位操作系统的DOS虚拟机中的变化啊。

那么是否没有彻底解决的办法了?我想这个技术应该不是很难的,是否有更好的鼠标光标中断子程序可以提供?

请赐教!再次感谢!




2003-7-9 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
帅哥
初级用户




积分 115
发帖 4
注册 2003-7-5
状态 离线
『第 4 楼』:  

其他高手也帮忙看一下吧。很急啊。

2003-7-11 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
拉菲尔
初级用户




积分 208
发帖 41
注册 2004-3-25
状态 离线
『第 5 楼』:  

楼主自己编写鼠标显示程序吧,用TC 自带的 BGI 函数

2004-5-30 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
boblhh9999
中级用户




积分 316
发帖 74
注册 2004-3-4
状态 离线
『第 6 楼』:  

帅哥:
我写的程序,为何无法显示
我想改变鼠标的默认图标,利用33h的调用。
程序如下
struct shape
  {
   unsigned char shape[32];
   char hotx;
   char hoty;
  };

struct shape ARROW={
      {
      
       0x3fff,0x1fff,0x0fff,0x07ff,
       0x03ff,0x01ff,0x00ff,0x007f,
       0x003f,0x00ff,0x01ff,0x10ff,
       0x30ff,0xf87f,0xf87f,0xfc3f,
       0x0000,0x7c00,0x6000,0x7000,
       0x7800,0x7c00,0x7e00,0x7f00,
       0x7f80,0x7e00,0x7c00,0x4600,
       0x0600,0x0300,0x0300,0x0180           
      },
      0,0,
     };

void mouse_shape(struct shape sp)
{
  struct SREGS sr;
  union REGS r;
  union REGPACK re;

  r.w.ax=0x00;
  int386(0x33,&r,&r);
  r.w.ax=0x09;
  r.w.bx=sp.hotx;
  r.w.cx=sp.hoty;
  r.x.edx=FP_OFF(&sp.shape);
  segread(&sr);
  sr.es=FP_SEG(&sp.shape);
  int386x(0x33,&r,&r,&sr);
  r.w.ax=0x01;
  int386(0x33,&r,&r);      
}

但显示不正常,
关键是鼠标的16*16的位图是如何在数组中排列,这一点我不懂,
所以毫无头绪,希望那为大侠给予指点。

    谢谢!!!!急急急

2004-6-3 00:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: