本文目錄一覽:
C語言鼠標移動
SetCursorPos( x,y ); 移動鼠標到x,y位置
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左鍵按下
mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右鍵按下
如果要捕捉鼠標的移動,一般採用勾子程序,詳情,請查閱鼠標勾子代碼
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”); 彈出 記事本。
C語言怎樣實現鼠標事件,純C可不可以?
我猜你說的純C指的是標準C(Standard C)。如果是這樣的話,我可以明確告訴你確實沒有鼠標事件。
標準C庫的所有頭文件可以參照官方網站,裡面有各頭文件中包含函數功能比較詳細的說明。
關於鼠標我要說一下,圖形界面不是計算機運行的必需模塊,操作系統甚至可以沒有鼠標驅動。上過計算機操作系統課之後你應該知道,一個操作系統能夠跑起來,只需要有各進程調度和資源分配,並不依賴圖形界面。每個進程在設計的時候可以自由選擇自己需要的函數庫進行封裝鏈接(或者運行時動態鏈接)。比方說你寫個程序只需要計算1+1,那麼要圖形界面模塊有啥用呢?
圖形用戶交互界面(GUI)其實也是特殊的函數庫,如果操作系統支持(或者說操作系統中有安裝相關函數庫的話),則可以在程序中包含頭文件進行調用。
如果是正經學計算機的,建議先放下圖形交互,放下Windows(當然我沒說它不好),嘗試接觸下OSX以及Linux,你會有比較大的收穫。
如何用c語言來實現鼠標移動。
#include stdio.h
int main (void)
{
SetCursorPos(1,1);
return 0;
}
如何用C語言移動鼠標?
#include Windows.h
#include stdio.h
#include process.h
VOID MyPlaySound(LPVOID lp)
{
unsigned FREQUENCY[]={392,392,440,392,523,494,
392,392,440,392,587,523,
392,392,784,659,523,494,440,
698,698,659,523,587,523,
392,392,440,392,523,494,
392,392,440,392,587,523,
392,392,784,659,523,494,440,
698,698,659,523,587,523};
unsigned DELAY[]={375,125,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,1000,
375,125,500,500,500,500,1000,
375,125,500,500,500,1000};
int CIRCLE;
for(CIRCLE=0;CIRCLE50;CIRCLE++)
{
Beep(FREQUENCY[CIRCLE],DELAY[CIRCLE]);
}
}
VOID MyPrint(LPVOID lp)
{
int i;
char a[10][4]=;
for(i=0;i10;i++)
{
printf(“%s”,a[i]);
Sleep(500);
}
}
int main()
{
_beginthread(MyPlaySound, 0, NULL);
_beginthread(MyPrint, 0, NULL);
Sleep(20000);
return 0;
}
編譯之前記得把項目屬性里改成多線程方案的.不然會出錯.我是在VS2010下編譯的.
C語言鼠標操作
我之前給別人寫過一個打地鼠的小遊戲,就是用鼠標操作的。發給你參考下。代碼很簡單。
主要函數我在下方說明了,但更多信息你必須自己百度看,一言兩語說不完。
SetConsoleCursorPosition函數可以定位光標位置,也就是文字內容顯示的起點。
ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函數可以獲取鼠標的操作信息。
調用過上面函數後,lpBuffer由於是傳址,所以其地址里的值就包含了鼠標信息。
lpBuffer.EventType == MOUSE_EVENT //判斷是鼠標事件
lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判斷是鼠標左鍵點擊
兩個判斷一起就是鼠標左鍵點擊的判斷,其他事件參數你可以自己網上找。
#include stdio.h
#include stdlib.h
#include windows.h
#include conio.h
#include time.h
#include string.h
#include malloc.h
#define gSizek 30//區域大小寬度
#define gSizeg 20//區域大小高度
#define gBegin 3//活動區域起始行
int main()
{
int t=0,s0,s1,i,j,count=0,fen=0,row=0,clo=0;
char gameA[gSizeg][gSizek+1],fSave[10]={0};
SetConsoleTitle(“打地鼠”);
HANDLE hInput = GetStdHandle(STD_INPUT_HANDLE); // 獲取標準輸入設備句柄
INPUT_RECORD inRec;
DWORD res;
COORD p0;
p0.X=0;
p0.Y=0;
srand(time(0));
s0= time(NULL);
strcpy(gameA[0],” GAME”);
strcpy(gameA[1],”未命中次數:0,計分:000000″);
for(i=gBegin-1;igSizeg;i++)
{
for(j=0;jgSizek+1;j++)
{
if(igBegin-1 igSizeg-1 j0 jgSizek-1)
gameA[i][j]=’ ‘;
else
gameA[i][j]=4;
if(j==gSizek)
gameA[i][j]=0;
}
}
for(i=0;igSizeg;i++)
printf(“%s\n”,gameA[i]);
while (1)
{
if(t=3)
{
if(row0 clo0)
gameA[row][clo]=’ ‘;
row=rand()%(gSizeg-1);
clo=rand()%(gSizek-1);
s0= time(NULL);
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
if(row3)
row=4;
if(clo1)
clo=1;
gameA[row][clo]=2;
for(i=0;igSizeg;i++)
{
//gameA[i][gSizeg+1]=0;
printf(“%s\n”,gameA[i]);
}
}
if(count==3)
{
p0.X=10;
p0.Y=8;
SetConsoleCursorPosition(GetStdHandle(STD_OUTPUT_HANDLE),p0);
printf(“GAME OVER!”);
break;
}
s1= time(NULL);
t=s1-s0;
ReadConsoleInput(hInput, inRec, 1, res);
if (inRec.EventType == MOUSE_EVENT inRec.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED) //鼠標左鍵
{
if(inRec.Event.MouseEvent.dwMousePosition.X==clo inRec.Event.MouseEvent.dwMousePosition.Y==row)
{
if(fen==0)
fen=1;
if(fen999999)
fen=999999;
else
fen=fen*2;
sprintf(fSave,”%06d”,fen);
gameA[1][18]=0;
strcat(gameA[1],fSave);
}
else
{
count++;
fen=0;
gameA[1][11]=count+’0′;
}
t=4;
}
}
while(1);
return 0;
}
原創文章,作者:小藍,如若轉載,請註明出處:https://www.506064.com/zh-hant/n/245319.html