可以
創(chuàng)新互聯(lián)主要為客戶提供服務(wù)項(xiàng)目涵蓋了網(wǎng)頁(yè)視覺(jué)設(shè)計(jì)、VI標(biāo)志設(shè)計(jì)、成都營(yíng)銷網(wǎng)站建設(shè)、網(wǎng)站程序開(kāi)發(fā)、HTML5響應(yīng)式重慶網(wǎng)站建設(shè)公司、手機(jī)網(wǎng)站開(kāi)發(fā)、微商城、網(wǎng)站托管及成都網(wǎng)站維護(hù)、WEB系統(tǒng)開(kāi)發(fā)、域名注冊(cè)、國(guó)內(nèi)外服務(wù)器租用、視頻、平面設(shè)計(jì)、SEO優(yōu)化排名。設(shè)計(jì)、前端、后端三個(gè)建站步驟的完善服務(wù)體系。一人跟蹤測(cè)試的建站服務(wù)標(biāo)準(zhǔn)。已經(jīng)為成都?jí)w彩繪行業(yè)客戶提供了網(wǎng)站改版服務(wù)。
B00L PostMessage(HWND hWnd,UINT Msg,WPARAM wParam,LPARAM lParam);
關(guān)于后兩個(gè)類型:
typedef UINT WPARAM;
typedef LONG LPARAM;
都是4字節(jié)
hWnd--要發(fā)給的程序句柄
Msg:
Msg=WM_MOUSEMOVE..鼠標(biāo)移動(dòng)事件
wParam:
MK_CONTROL ctrl鍵按下.
MK_LBUTTON 鼠標(biāo)左鍵鍵按下.
MK_MBUTTON 鼠標(biāo)中間鍵按下.
MK_RBUTTON 鼠標(biāo)右鍵按下.
MK_SHIFT shift鍵按下.
lParam--高位當(dāng)前鼠標(biāo)y坐標(biāo),低位當(dāng)前鼠標(biāo)x坐標(biāo)
比如給句柄為hWnd的程序隊(duì)列發(fā)送一個(gè)鼠標(biāo)移動(dòng)信息,同時(shí)鼠標(biāo)左鍵和中間處于按下?tīng)顟B(tài),鼠標(biāo)坐標(biāo)為(120,100)
PostMessage(hWnd, WM_MOUSEMOVE ,MK_LBUTTON|MK_MBUTTON,(16100)|120);
如果是要發(fā)送數(shù)據(jù),然后你在程序端自己處理的話,推薦用sendmessage函數(shù),因?yàn)镻ostMessage只是把消息發(fā)送到程序的消息隊(duì)列去,程序自動(dòng)處理.就是說(shuō),如果接收消息的程序是你自己寫,用sendmessage就可以,如果是別人寫的程序,你要仿真一個(gè)事件給那個(gè)程序,那么就用PostMessage
如果用
SendMessage(Hwnd, WM_MOUSEMOVE , x, y);
其中
x:wParam,取值范圍
MK_CONTROL Set if the ctrl key is down.
MK_LBUTTON Set if the left mouse button is down.
MK_MBUTTON Set if the middle mouse button is down.
MK_RBUTTON Set if the right mouse button is down.
MK_SHIFT Set if the shift key is down.
y:lParam,鼠標(biāo)的坐標(biāo)
xPos = LOWORD(lParam); //horizontal position of cursor
yPos = HIWORD(lParam); //vertical position of cursor
你就可以在程序里重載虛函數(shù)LRESULT CALLBACK WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam)
switch(message)
{
case WM_MOUSEMOVE:
//寫你要在鼠標(biāo)移動(dòng)時(shí)做的處理
break;
.....
}
CDialog::WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);
}
CDialog::WindowProc(HWND hWnd,UINT message,WPARAM wParam,LPARAM lParam);是MFC自己的處理函數(shù),最好加上,不然會(huì)很麻煩
很簡(jiǎn)單的SendMessage和postmessage一樣使用方法
SetCursorPos( x,y ); 移動(dòng)鼠標(biāo)到x,y位置
mouse_event( MOUSEEVENTF_LEFTDOWN, x,y,0,0 ); 左鍵按下
mouse_event( MOUSEEVENTF_RIGHTDOWN, x,y,0,0 ); 右鍵按下
如果要捕捉鼠標(biāo)的移動(dòng),一般采用勾子程序,詳情,請(qǐng)查閱鼠標(biāo)勾子代碼
#include?stdio.h
int?main?(void)
{
SetCursorPos(1,1);
return?0;?
}
我之前給別人寫過(guò)一個(gè)打地鼠的小游戲,就是用鼠標(biāo)操作的。發(fā)給你參考下。代碼很簡(jiǎn)單。
主要函數(shù)我在下方說(shuō)明了,但更多信息你必須自己百度看,一言兩語(yǔ)說(shuō)不完。
SetConsoleCursorPosition函數(shù)可以定位光標(biāo)位置,也就是文字內(nèi)容顯示的起點(diǎn)。
ReadConsoleInput(HANDLE hConsoleInput,*INPUT_RECORD lpBuffer,DWORD nLength,
DWORD lpNumberOfEventsRead)函數(shù)可以獲取鼠標(biāo)的操作信息。
調(diào)用過(guò)上面函數(shù)后,lpBuffer由于是傳址,所以其地址里的值就包含了鼠標(biāo)信息。
lpBuffer.EventType == MOUSE_EVENT //判斷是鼠標(biāo)事件
lpBuffer.Event.MouseEvent.dwButtonState == FROM_LEFT_1ST_BUTTON_PRESSED//判斷是鼠標(biāo)左鍵點(diǎn)擊
兩個(gè)判斷一起就是鼠標(biāo)左鍵點(diǎn)擊的判斷,其他事件參數(shù)你可以自己網(wǎng)上找。
#include?stdio.h
#include?stdlib.h
#include?windows.h
#include?conio.h
#include?time.h
#include?string.h
#include?malloc.h
#define?gSizek?30//區(qū)域大小寬度
#define?gSizeg?20//區(qū)域大小高度
#define?gBegin?3//活動(dòng)區(qū)域起始行
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);?//?獲取標(biāo)準(zhǔn)輸入設(shè)備句柄
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],"未命中次數(shù):0,計(jì)分: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)?//鼠標(biāo)左鍵
{
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;
}
網(wǎng)頁(yè)名稱:鼠標(biāo)移動(dòng)c語(yǔ)言函數(shù),windows鼠標(biāo)移動(dòng)函數(shù)
網(wǎng)頁(yè)鏈接:http://jinyejixie.com/article10/hsspdo.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供建站公司、網(wǎng)站制作、網(wǎng)頁(yè)設(shè)計(jì)公司、服務(wù)器托管、軟件開(kāi)發(fā)、外貿(mào)建站
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容