當前位置:首頁 » 編程語言 » c語言滑鼠0x
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

c語言滑鼠0x

發布時間: 2023-02-15 00:39:25

A. 在單片機c語言編程中的0x代表什麼意思啊謝謝大俠指導

■寫程序時OX後面的數值表示是16進制的,和數值後面加H表示16進制的方法等效。
例如10H 是16 進制的16, 用OX方法來寫就是OX10
即 OX10 = 10H (等於十進制的十六)

B. c語言如何獲取滑鼠鍵盤信息

我估計你分數給的在高也沒人回答。來個這樣的代碼太麻煩了。而且網路金幣用處也不大。
不過,我可以寫幾個滑鼠函數給你參考一下。
首先了解一下滑鼠的中斷。
_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(_bx&1);
}
-----------------------------------------------------
滑鼠右鍵的應該也會了吧。不過要return(_bx&2);
-----------------------------------------------------
void
mousegetxy(void)//得到當前位置
{
_ax
=
0x33;
geninterrupt(0x33);
mousex
=
_cx;
mousey
=
_dx;
}
---------------------------------------------------------------
最好要復制粘貼,打字打得手疼。

C. C語言0X或0x問題

0X表示的是採用十六進制來表示一個整數,X不能拿出來單獨說指的是什麼。操作方法如下:

1、首先在電腦中點擊打開DevC++或者其他的C語言編程軟體,如圖所示。

D. C語言下怎麼用滑鼠啊

/*這個我確實不會,直接找了一篇你看下,估計有所參考*/
#include <dos.h>
#include <bios.h>
#include <malloc.h>
#include <stdlib.h>
#include <stdio.h>
#include "graphics.h"

#define R 15 /*滑鼠的形態*/

void initgr(void) /* BGI初始化 */
{
int gd = DETECT, gm = 0; /* 和gd = VGA,gm = VGAHI是同樣效果 */
initgraph(&gd, &gm, "");
}
/*獲取滑鼠位置和按鍵,key=1是左鍵,key=2是右鍵*/
void getmouse(int *x,int *y,int *key)
{
union REGS inregs,outregs;
inregs.x.ax=3; /*獲取滑鼠位置和狀態也可以用3*/
int86(0x33,&inregs,&outregs); /*中斷調用*/
*x=outregs.x.cx; /*cx寄存器中存的是橫坐標*/
*y=outregs.x.dx; /*dx寄存器中存的是列坐標*/
*key=outregs.x.bx; /*bx寄存器是按鍵狀態*/
}
void visbilemouse()
{
union REGS inregs,outregs;
inregs.x.ax=0x01; /*顯示滑鼠*/
int86(0x33,&inregs,&outregs);
}
/*按鍵後,返回當前滑鼠的x,y和按鍵狀態,知道按鍵後才返回*/
void mouse(int *x,int *y,int *z) /*畫滑鼠是利用將一個空矩形存入內存中,然後再在該空矩形中畫滑鼠形狀*/
{
int a=0,b=0,c=0,a_old=0,b_old=0; /*a,b的值可以隨便*/
int *ball; /*定義指向內存的存儲圖形的指針*/
ball=malloc(imagesize(a,b,a+R,b+R)); /*返回矩形的大小*/
getimage(a,b,a+R,b+R,ball); /*第一次將圖形(一個空矩形)存入到內存中,內存中存入的是一個空矩形*/
/*setcolor(GREEN);
setlinestyle(0,0,1);
line(a,b,a+R,b+R/2);
line(a,b,a+R/2,b+R);
line(a+R,b+R/2,a+R/2,b+R);
line(a+R*3/4,b+R*3/4,a+R,b+R); 同樣可要可不要,畫滑鼠*/
while(c==0) /*直到按鍵後才返回,不按鍵一直循環*/
{
getmouse(&a,&b,&c); /*a,為橫坐標,b,為列坐標,c為按鍵狀態*/
if(a<0) a=0; /*保證滑鼠左邊不出界*/
if(b<0) b=0; /*保證上面不出界*/
if(a>getmaxx()-R) a=getmaxx()-R; /*保證右邊不出界*/
if(b>getmaxy()-R) b=getmaxy()-R; /*保證下邊不出界*/
if(a!=a_old || b!=b_old) /*當滑鼠移動時*/
{
putimage(a_old,b_old,ball,0); /*在a_old,b_old輸出圖形,用來擦掉原來的滑鼠*/
getimage(a,b,a+R,b+R,ball); /*這條語句是將目前滑鼠所在位置的圖形存貯到ball裡面試著看著有無這條語句的區別*/
/*不需要在獲取了*/
setcolor(GREEN);
setlinestyle(0,0,1);
line(a,b,a+R,b+R/2);
line(a,b,a+R/2,b+R);
line(a+R,b+R/2,a+R/2,b+R);
line(a+R*3/4,b+R*3/4,a+R,b+R); /*畫滑鼠*/
}
a_old=a;b_old=b;
} /*while()結束*/
*x=a;*y=b;*z=c; /*返回按鍵後滑鼠的位置*/
putimage(a,b,ball,0); /*將滑鼠擦掉,因為存在ball裡面的是一個背景為預設狀態下的一個空矩形*/
free(ball);
}
/*主要思想是通過getimage,putimage,imagesize圖形的存貯一個當前的圖形來擦拭掉以前的滑鼠圖形,也可以用清屏部分屏幕來實現*/
void main()
{
int x,y,z;
initgr();
visbilemouse();
do
{
setcolor(WHITE);
rectangle(175,8,220,25);
outtextxy(180,10,"exit");
mouse(&x,&y,&z);
if(z==1)
{
setlinestyle(0,0,1);
setcolor(12);
circle(x,y,1);
}
if(z==2)
{setfillstyle(1,BLACK);
bar(0,0,getmaxx(),getmaxy());
}
}while(x<175 || x>220 || y<8 || y>25);
closegraph();
}

E. C語言怎麼實現滑鼠操作

VOID keybd_event( BYTE bVk, BYTE bScan, DWORD dwFlags, DWORD dwExtraInfo ); 4個參數都是輸入參數。 bVk:鍵名,例如: VK_NUMPAD7,VK_BACK, VK_TAB,VK_SHIFT,VK_F1,。。。 keybd_event(VK_MENU,0xb8,0 , 0); -- 按下Alt 鍵 keybd_event(VK_MENU,0xb8,KEYEVENTF_KEYUP,0); -- 放開 Alt 鍵 (復位,彈上來) === 下面程序模擬按 notepad 編輯器。等於C語言 system("notepad"); 彈出 記事本。

F. 用c語言編寫一個可以用滑鼠控制的五子棋程序

#include<ctype.h>
#include<stdio.h>
#include<dos.h>
#include<conio.h>
#include<ctype.h>
#include<bios.h>
#define SHURU 1
#define FANGXIANG 2
#define WUXIAO 0
#define TUICHU 3
/****************************************************/
static int ii=0,jj=0,wanjia=1;
/****************************************************/
void hqp(int a[][20],int y);
int anjian(char an);
int panan(int a[][20]);
void pingmu(void);
void guangbiaoyd(char an);
void jh(int a[][20]);
/****************************************************/
void main()
{
int a[20][20]={0},tuichu=0,ying;
char an;
hqp(a,0);
pingmu();
while(1)
{
ying=panan(a);
if(ying!=0)
hqp(a,ying);
an=getch();
switch(anjian(an))
{
case TUICHU:clrscr();
tuichu=1;
break;
case FANGXIANG:guangbiaoyd(an);
break;
case SHURU: switch(ying)
{
case 1:hqp(a,1);tuichu=1;break;
case 2:hqp(a,2);tuichu=1;break;
case 0:jh(a);break;
}
break;
case WUXIAO:break;
}
hqp(a,0);
pingmu();
if(tuichu==1)
break;
}
}
/****************************************************/
void hqp(int a[][20],int y)
{
int i,j;
clrscr();
if(y!=0)
{
textcolor(RED);
printf("WAN JIA %d SHENG LI! ! ! ! ! \n",y);
}
for(i=0;i<20;i++)
{
for(j=0;j<20;j++)
{
switch(a[i][j])
{
case 1: textcolor(YELLOW);
putch('X');
break;
case 2: textcolor(BLUE);
putch('0');
break;
case 0: textcolor(GREEN);
if(j==0)
{
if(i==0)
{
putch(0xda);
break;
}
if(i==19)
{
putch(0xc0);
break;
}
putch(0xc3);
break;
}
if(j==19)
{
if(i==0)
{
putch(0xbf);
break;
}
if(i==19)
{
putch(0xd9);
break;
}
putch(0xb4);
break;
}
if(i==0&&j!=0&&j!=19)
{
putch(0xc2);
break;
}
if(i==19&&j!=0&&j!=19)
{
putch(0xc1);
break;
}
putch(0xc5);
break;
}
}
printf("\n");
}
}
/*****************************************************************/
int anjian(char an)
{
if(an==32||an==13)
return(SHURU);
else
if(an=='a'||an=='w'||an=='s'||an=='d'||
an=='j'||an=='i'||an=='k'||an=='l')
return(FANGXIANG);
else
if(an==27)
return(TUICHU);
else
return(WUXIAO);
}
/******************************************************************/
int panan(int a[][20])
{
int i,j;
for(i=0;i<20;i++)
{
for(j=0;j<15;j++)
{
if(a[i][j]==1&&a[i][j+1]==1&&a[i][j+2]==1&&a[i][j+3]==1&&a[i][j+4]==1)
return(1);
else
if(a[i][j]==2&&a[i][j+1]==2&&a[i][j+2]==2&&a[i][j+3]==2&&a[i][j+4]==2)
return(2);
}
}
for(i=0;i<15;i++)
{
for(j=0;j<20;j++)
{
if(a[i][j]==1&&a[i+1][j]==1&&a[i+2][j]==1&&a[i+3][j]==1&&a[i+4][j]==1)
return(1);
else
if(a[i][j]==2&&a[i+1][j]==2&&a[i+2][j]==2&&a[i+3][j]==2&&a[i+4][j]==2)
return(2);
}
}
for(i=0;i<15;i++)
{
for(j=0;j<15;j++)
{
if(a[i][j]==1&&a[i+1][j+1]==1&&a[i+2][j+2]==1&&a[i+3][j+3]==1&&a[i+4][j+4]==1)
return(1);
else
if(a[i][j]==2&&a[i+1][j+1]==2&&a[i+2][j+2]==2&&a[i+3][j+3]==2&&a[i+4][j+4]==2)
return(2);
}
}
for(i=4;i<20;i++)
{
for(j=4;j<20;j++)
{
if(a[i][j]==1&&a[i-1][j-1]==1&&a[i-2][j-2]==1&&a[i-3][j-3]==1&&a[i-4][j-4]==1)
return(1);
else
if(a[i][j]==2&&a[i-1][j-1]==2&&a[i-2][j-2]==2&&a[i-3][j-3]==2&&a[i-4][j-4]==2)
return(2);
}
}
return(0);

}
/**************************************************************************/
void pingmu(void)
{
int i,j;
char *Msg[]=
{
"Wan Jia1 an jian:",
" shang: w",
" xia: s",
" zuo: a",
" you: d",
" fang zi: space",
"",
"Wan Jia2 an jian:",
" shang: i",
" xia: k",
" zuo: j",
" you: l",
" fang zi: ENTER",
"tui chu:",
" ESC\n",
NULL,
};
i=0;
textcolor(RED);
while(Msg[i]!=NULL)
{
gotoxy(25,3+i);
cputs(Msg[i]);
i++;
}
gotoxy(25,20);
printf("\nqing wan jia %d chu ru:",wanjia);
gotoxy(jj+1,ii+1);
}
/**********************************************************************/
void guangbiaoyd(char an)
{
if(wanjia==1)
{
switch(an)
{
case 'a': jj--;break;
case 'd': jj++;break;
case 'w': ii--;break;
case 's': ii++;break;
}
}
else
{
switch(an)
{
case 'j': jj--;break;
case 'l': jj++;break;
case 'i': ii--;break;
case 'k': ii++;break;
}
}
if(ii<0)
ii++;
if(ii>19)
ii--;
if(jj<0)
jj++;
if(jj>19)
jj--;
gotoxy(ii+1,jj+1);
}
/***********************************************************************/
void jh(int a[][20])
{
int k=0;
if(wanjia==1&&a[ii][jj]==0&&k==0)
{
a[ii][jj]=1;
wanjia=2;
k=1;
}
else
{
if(a[ii][jj]==0&&k==0)
{
a[ii][jj]=2;
wanjia=1;
}
}
}
/***********************************************************************/

G. C語言中對變數賦值0x是什麼意思

C語言中對變數賦值0x是以十六進制數作為變數的值進行運算的。一般用來表示內存地址的。
舉例說明:
定義x:int x = 0x23 ;

這句話的意思跟定義成int x=35一樣的。編譯器在接收到0x23時就把它當做十六進制數來處理。

H. c語言編程中出現0x004012cc指令引用的0x00000031內存。該內存不能為read是怎麼回事

您好!出現:0x???????? 指令引用的0x????????內存。該內存不能為"read"或"written"。答案【shijan8原創】★嚴禁復制★
【1】對電腦沒有影響或【偶爾】出現,不用管它,【重啟電腦】後可能會自動消失。
【2】盜版系統或Ghost版本系統,系統文件錯誤或丟失,也會出現該問題,及時安裝官方發行的補丁,{檢查電腦年、月、日是否正確}。建議:安裝【正版】系統。
【3】檢查驅動是否出現問題,重新安裝驅動或及時更新驅動。
【4】病毒引起的:升級殺毒軟體或下載專殺工具,清理惡意插件,對電腦全盤殺毒。
【5】硬體引起的:
(1)可能是內存條出現的小問題,關機斷電,把內存條拆下清理干凈重新安裝。必要時更換內存條。(硬體上一般不會出現該問題)
【6】軟體引起的:
(1)安裝的軟體與系統或其它軟體發生沖突,盜版或帶病毒的軟體,請慎重下載軟體,最好使用正版。【這里主要說的是檢查開機啟動項,把沒必要啟動的啟動項禁止開機啟動】
(2)如果你的電腦中安裝了兩款或兩款以上的同類軟體,比如:兩款殺毒軟體、兩款優化系統軟體等,請卸載一款,以免發生沖突,以保持電腦穩定性。
(3)有些系統補丁下載安裝了錯誤補丁,可能與您當前的系統或其它軟體發生沖突,也會出現該問題。卸載該補丁,找到適合您電腦補丁,重新下載重新安裝。
可以試試下面的方法:看看能不能解決。
◆開始→運行→輸入cmd→回車,在命令提示符下輸入下面命令
for %1 in (%windir%\system32\*.dll) do regsvr32.exe /s %1回車。
完成後,在輸入下面的
for %i in (%windir%\system32\*.ocx) do regsvr32.exe /s %i 回車。
如果怕輸入錯誤,可以復制這兩條指令,然後在命令提示符後擊滑鼠右鍵,打「粘貼」,回車,耐心等待,直到屏幕滾動停止為止。(重啟電腦)。
●在檢查運行regedit進入注冊表, 在HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Explorer\ShellExecuteHooks 下,應該只有一個正常的鍵值{AEB6717E-7E19-11d0-97EE-00C04FD91972}, 將其他的刪除。【如果還有一個(默認)值不用管它,一般它為空。】必要時【還原】或重新安裝系統。

I. C語言里的0x0和0x1是什麼意思啊

C語言里的0x0和0x1分別表示十六進制的數的0和1。

C語言、C++、Shell、Python、Java語言及其他相近的語言使用字首「0x」,例如「0x5A3」。開頭的「0」令解析器更易辨認數,而「x」則代表十六進制(就如「O」代表八進制)。在「0x」中的「x」可以大寫或小寫。對於字元量C語言中則以x+兩位十六進制數的方式表示,如xFF。

因此,0x0中「0x」表示的是十六進制數,0是十六進制數值0,0x,1中「0x」表示的是十六進制數,1是十六進制數值1。

(9)c語言滑鼠0x擴展閱讀:

C語言中的相關數值表示法:

1、在C語言里,整數有三種表示形式:十進制,八進制,十六進制。其中以數字0開頭,由0~7組成的數是八進制。以0X或0x開頭,由0~9,A~F或a~f 組成是十六進制。除表示正負的符號外,以1~9開頭,由0~9組成是十進制。

2、十進制:除表示正負的符號外,以1~9開頭,由0~9組成。如,128,+234,-278。

3、八進制:以0開頭,由0~7組成的數。如,0126,050000.

4、十六進制:以0X或0x開頭,由0~9,A~F或a~f 組成。如,0x12A,0x5a000。

J. 關於C語言滑鼠驅動程序(高手請仔細看)

設置滑鼠的游標形狀
設置滑鼠游標需要三個方面信息:
滑鼠的外邊界:8*8點陣,16個整數
滑鼠的內部形狀:8*8點陣,16個整數
以及滑鼠的熱點的相對坐標:int x,y
其中外邊界和內邊界連續存放,為長度為32的整型數組 int marks[32] SetCurs(unsigned masks[32],x,y)
{ union REGS regs; struct SREGS sregs;
regs.x.ax=9;
regs.x.bx=x; regs.x.cx=y;/* hot spot*/
regs.x.dx=(unsigned)masks;
segread(&sregs); int86(0x33,(r)gs,(r)gs);
}
一些不同形狀的游標數據:
//mouse
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, //Cursor mask
0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x1000, 0x13c0,
0x3ff0, 0x7ff8, 0xfff8, 0xfff8, 0x0824, 0x0822, 0x1ce2, 0x0000},
//empty hand
{0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff, 0xffff,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc},
//full arrow
{0x3fff, 0x1fff, 0x0fff, 0x07ff, 0x03ff, 0x01ff, 0x00ff, 0x007f,
0x003f, 0x00ff, 0x01ff, 0x10ff, 0x30ff, 0xf87f, 0xf87f, 0xfc3f,
0x0000, 0x4000, 0x6000, 0x7000, 0x7800, 0x7c00, 0x7e00, 0x7f00,
0x7f80, 0x7e00, 0x7c00, 0x4600, 0x0600, 0x0300, 0x0300, 0x0180},
//full hand
{0xf3ff, 0xe1ff, 0xe1ff, 0xe1ff, 0xe001, 0xe000, 0xe000, 0xe000,
0x8000, 0x0000, 0x0000, 0x0000, 0x0000, 0x0000, 0x8001, 0xc003,
0x0c00, 0x1200, 0x1200, 0x1200, 0x13fe, 0x1249, 0x1249, 0x1249,
0x7249, 0x9001, 0x9001, 0x9001, 0x8001, 0x8001, 0x4002, 0x3ffc}
};
Point hotspot[]={{0,11},{4,0},{0,0},{4,0}};/*熱點*/