![]() |
China DOS Union-- Unite DOS · Advance DOS · Grow DOS --Union site: www.cn-dos.net Forum site: www.cn-dos.net/forum |
| Guest | Log in | Register | Members | Search | China DOS Union |
|
中国DOS联盟论坛 The time now is 2026-10-31 12:51 |
47,815 topics / 349,930 posts / today 0 new / 48,290 members |
| DOS开发编程 & 发展交流 (开发室) » Problem with the mouse graphics cursor not displaying under NT/2K/XP. |
| Printable Version 1,473 / 5 |
| Floor1 帅哥 | Posted 2003-07-09 00:00 |
| 初级用户 Posts 4 Credits 115 | |
|
Question for the experts: how can I solve the problem that the 33H mouse graphics cursor does not display under NT/2K/XP?
I have made many DOS graphics-mode application programs based on 33H, most of them using 640*480*16-color mode + graphical mouse control. These programs run perfectly normally under pure DOS or 95/98/ME, but when run under NT/2K/XP, the mouse cursor never displays. Aside from that, all other functions of the software are normal. Although the mouse cursor cannot be seen, the mouse's actual positioning is normal; the software can detect the current position of the mouse cursor, and can also detect button actions. I tried calling the 33H showmousecursor and hidemousecursor functions under NT/2K/XP, but both are ineffective. I also tried writing my own interrupt routine to display the cursor, but because it uses the timer interrupt, it can only display a few dozen times per second, and the flickering is very serious in actual use. Could the moderator and all the experts please advise how to solve this problem? Thanks. |
|
| Floor2 Wengier | Posted 2003-07-09 00:00 |
| 系统支持 Posts 10,521 Credits 27,736 | |
|
The best solution, I guess, would be to contact Microsoft and have them fix this BUG in WinNT/2K/XP.
|
|
| Floor3 帅哥 | Posted 2003-07-09 00:00 |
| 初级用户 Posts 4 Credits 115 | |
The following is quoted from Wengier's post on 2003-7-9 9:04:15: Thanks for the reply. Contacting M$ to solve this problem is almost impossible. I searched for a long time and also did not find any relevant M$ documentation explaining changes to interrupt 33H in the DOS virtual machine of a pure 32-bit operating system. So is there really no complete solution? I don't think this technology should be very difficult. Is there a better mouse cursor interrupt subroutine that can be provided? Please advise! Thanks again! |
|
| Floor4 帅哥 | Posted 2003-07-11 00:00 |
| 初级用户 Posts 4 Credits 115 | |
|
Other experts, please help take a look too. It's very urgent.
|
|
| Floor5 拉菲尔 | Posted 2004-05-30 00:00 |
| 初级用户 Posts 41 Credits 208 | |
|
OP should write a mouse display program yourself, using the BGI functions that come with TC
|
|
| Floor6 boblhh9999 | Posted 2004-06-03 00:00 |
| 中级用户 Posts 74 Credits 316 | |
|
Handsome guy:
Why can't the program I wrote display properly? I want to change the mouse's default icon using a 33h call. The program is as follows struct shape { unsigned char shape; 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); } But it does not display properly. The key issue is how the mouse 16*16 bitmap is arranged in the array; I don't understand that part, so I have no clue at all. I hope some expert can give me some guidance. Thanks!!!! Very urgent |
|
|
[ Contact the Union admin team -
中国DOS联盟 -
Standard version ] Sponsored by ifanr Inc | © 2001–2023 |