c語言操作鼠標,c++鼠標操作

本文目錄一覽:

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

(0)
打賞 微信掃一掃 微信掃一掃 支付寶掃一掃 支付寶掃一掃
小藍的頭像小藍
上一篇 2024-12-12 13:08
下一篇 2024-12-12 13:08

相關推薦

  • Python棧操作用法介紹

    如果你是一位Python開發工程師,那麼你必須掌握Python中的棧操作。在Python中,棧是一個容器,提供後進先出(LIFO)的原則。這篇文章將通過多個方面詳細地闡述Pytho…

    編程 2025-04-29
  • AES加密解密算法的C語言實現

    AES(Advanced Encryption Standard)是一種對稱加密算法,可用於對數據進行加密和解密。在本篇文章中,我們將介紹C語言中如何實現AES算法,並對實現過程進…

    編程 2025-04-29
  • 學習Python對學習C語言有幫助嗎?

    Python和C語言是兩種非常受歡迎的編程語言,在程序開發中都扮演着非常重要的角色。那麼,學習Python對學習C語言有幫助嗎?答案是肯定的。在本文中,我們將從多個角度探討Pyth…

    編程 2025-04-29
  • Python操作數組

    本文將從多個方面詳細介紹如何使用Python操作5個數組成的列表。 一、數組的定義 數組是一種用於存儲相同類型數據的數據結構。Python中的數組是通過列表來實現的,列表中可以存放…

    編程 2025-04-29
  • Python被稱為膠水語言

    Python作為一種跨平台的解釋性高級語言,最大的特點是被稱為”膠水語言”。 一、簡單易學 Python的語法簡單易學,更加人性化,這使得它成為了初學者的入…

    編程 2025-04-29
  • Python操作MySQL

    本文將從以下幾個方面對Python操作MySQL進行詳細闡述: 一、連接MySQL數據庫 在使用Python操作MySQL之前,我們需要先連接MySQL數據庫。在Python中,我…

    編程 2025-04-29
  • OpenJudge答案1.6的C語言實現

    本文將從多個方面詳細闡述OpenJudge答案1.6在C語言中的實現方法,幫助初學者更好地學習和理解。 一、需求概述 OpenJudge答案1.6的要求是,輸入兩個整數a和b,輸出…

    編程 2025-04-29
  • Python磁盤操作全方位解析

    本篇文章將從多個方面對Python磁盤操作進行詳細闡述,包括文件讀寫、文件夾創建、刪除、文件搜索與遍歷、文件重命名、移動、複製、文件權限修改等常用操作。 一、文件讀寫操作 文件讀寫…

    編程 2025-04-29
  • Python代碼實現迴文數最少操作次數

    本文將介紹如何使用Python解決一道經典的迴文數問題:給定一個數n,按照一定規則對它進行若干次操作,使得n成為迴文數,求最少的操作次數。 一、問題分析 首先,我們需要了解迴文數的…

    編程 2025-04-29
  • Python按位運算符和C語言

    本文將從多個方面詳細闡述Python按位運算符和C語言的相關內容,並給出相應的代碼示例。 一、概述 Python是一種動態的、面向對象的編程語言,其按位運算符是用於按位操作的運算符…

    編程 2025-04-29

發表回復

登錄後才能評論