【EasyX】快速入門——消息處理,音頻

1.消息處理

我們先看看什么是消息

1.1.獲取消息

想要獲取消息,就必須學會getmessage函數

1.1.1.getmessage函數

有兩個重載版本,它們的作用是一樣的 

 

參數filter可以篩選我們需要的消息類型

 我們看看參數filter的取值

當然我們可以使用位運算組合這些值 

例如,我們只需獲取鼠標消息的時候,有下面兩個做法

如果我們鍵盤和鼠標消息都想要,那就

1.2.消息結構體

接下來我們好好討論這個消息結構體

struct ExMessage
{USHORT message;					// 消息標識union{// 鼠標消息的數據struct{bool ctrl		:1;		// Ctrl 鍵是否按下bool shift		:1;		// Shift 鍵是否按下bool lbutton	:1;		// 鼠標左鍵是否按下bool mbutton	:1;		// 鼠標中鍵是否按下bool rbutton	:1;		// 鼠標右鍵short x;				// 鼠標的 x 坐標short y;				// 鼠標的 y 坐標short wheel;			// 鼠標滾輪滾動值,為 120 的倍數};// 按鍵消息的數據struct{BYTE vkcode;			// 按鍵的虛擬鍵碼BYTE scancode;			// 按鍵的掃描碼(依賴于 OEM)bool extended	:1;		// 按鍵是否是擴展鍵bool prevdown	:1;		// 按鍵的前一個狀態是否按下};// 字符消息的數據TCHAR ch;// 窗口消息的數據struct{WPARAM wParam;LPARAM lParam;};};
};

我們先看第一個成員——message 

	ExMessage msg;msg = getmessage(EX_MOUSE);//篩選了鼠標消息

如果我們篩選的是鼠標消息 

 那么我們獲得的ExMessage結構體中,結構體message成員就可能是下面這張表的值

我們再看結構體

如果是鼠標消息類型,那么只有鼠標消息結構體有效,其他成員結構體是無效的

如果篩選了鍵盤消息

	ExMessage msg;msg = getmessage(EX_KEY);//篩選了鍵盤消息

那么獲得的ExMessage結構體中的message成員就可能是下面這張表的值

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/14802.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/14802.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/14802.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

華為CE6851-48S6Q-HI升級設備版本及補丁

文章目錄 升級前準備工作筆記本和交換機設備配置互聯地址啟用FTP設備訪問FTP設備升級系統版本及補丁 升級前準備工作 使用MobaXterm遠程工具連接設備,并作為FTP服務器準備升級所需的版本文件及補丁文件 筆記本和交換機設備配置互聯地址 在交換機接口配置IP&#…

Facebook隱私保護:數據安全的前沿挑戰

在數字化時代,隨著社交媒體的普及和應用,個人數據的隱私保護問題日益受到關注。作為全球最大的社交平臺之一,Facebook承載了數十億用戶的社交活動和信息交流,但與此同時,也面臨著來自內外部的數據安全挑戰。本文將深入…

AWS Elastic Beanstalk 監控可觀測最佳實踐

一、概述 Amazon Web Services (AWS) 包含一百多種服務,每項服務都針對一個功能領域。服務的多樣性可讓您靈活地管理 AWS 基礎設施,然而,判斷應使用哪些服務以及如何進行預配置可能會非常困難。借助 Elastic Beanstalk,可以在 AW…

【LinuxC語言】一切皆文件的理念

文章目錄 引言一、什么是“一切皆文件”?1. 文件柜的類比2. 統一的操作方式3. 舉個具體例子4. 設備文件5. 進程和網絡連接6. 簡化管理 二、這一設計的優勢1. 統一接口2. 靈活性3. 簡化了系統管理4. 增強了系統安全性 結論 引言 Linux 操作系統以其獨特的設計理念和…

如何使用JMeter 進行全鏈路壓測

使用 JMeter 進行全鏈路壓測:詳細步驟指南 全鏈路壓測旨在測試整個系統的性能,包括所有的組件和服務。通過 Apache JMeter 進行全鏈路壓測,可以模擬真實用戶行為,測試系統在高負載下的表現。以下是詳細的步驟指南,分為…

AWTK實現汽車儀表Cluster/DashBoard嵌入式GUI開發(七):快啟

前言: 汽車儀表是人們了解汽車狀況的窗口,而儀表中的大部分信息都是以指示燈形式顯示給駕駛者。儀表指示燈圖案都較為抽象,對駕駛不熟悉的人在理解儀表指示燈含義方面存在不同程度的困難,尤其對于駕駛新手,如果對指示燈的含義不求甚解,有可能影響駕駛的安全性。即使是對…

Pytest框架實戰二

在Pytest框架實戰一中詳細地介紹了Pytest測試框架在參數化以及Fixture函數在API測試領域的實戰案例以及具體的應用。本文章接著上個文章的內容繼續闡述Pytest測試框架優秀的特性以及在自動化測試領域的實戰。 conftest.py 在上一篇文章中闡述到Fixture函數的特性,第…

shell循環

一、for循環 用法: for 變量 in 取值列表 do 命令序列 done 例1:打印1到10的數字列表 #!/bin/bashfor i in {1..10} do echo $i done 例2:#批量添加用戶,用戶名存放在users.txt文件中,每行一個,初始密碼均設為123456 #!/bin/bas…

KMP算法【C++】

KMP算法測試 KMP 算法詳解 根據解釋寫出對應的C代碼進行測試&#xff0c;也可以再整理成一個函數 #include <iostream> #include <vector>class KMP { private:std::string m_pat;//被匹配的字符串std::vector<std::vector<int>> m_dp;//狀態二維數組…

怎樣解決Redis高并發競爭Key難點?

Redis作為一種高性能的鍵值存儲系統&#xff0c;在現代分布式系統中發揮著重要作用。然而&#xff0c;高并發場景下對同一Key的操作可能引發競爭條件&#xff0c;給系統穩定性和數據一致性帶來挑戰。本文將探討如何解決這一問題&#xff0c;為讀者提供有效的應對策略。 1. Red…

【002】FlexBison實現原理

0. 前言 Flex和Bison是用于構建處理結構化輸入的程序的工具。它們最初是用于構建編譯器的工具&#xff0c;但它們已被證明在許多其他領域都很有用。 &#xfeff; 在第一章中&#xff0c;我們將首先看一點(但不是太多)它們背后的理論&#xff0c;然后我們將深入研究一些使用它…

Mysql和Postgresql創建用戶和授權命令

Mysql和Postgresql創建用戶和授權命令 MySQL/MariaDB/TiDB mysql -uroot -P3306 -p 輸入密碼&#xff1a;xxx create user user1% identified by xxx; grant all privileges on *.* to user1%; create user user2% identified by xxx; grant all privileges on *.* to user2%;…

Winform /C# 截圖當前窗體,指定區域,當前屏幕

1.當前窗體 public static Image CaptureControl(Control ctrl){System.Drawing.Bitmap bmp new System.Drawing.Bitmap(ctrl.Width, ctrl.Height);ctrl.DrawToBitmap(bmp, new Rectangle(0, 0, ctrl.Width, ctrl.Height));return bmp;}private void DownLoad(){string filePa…

java類中運行main方法時報錯:找不到或無法加載主類 XXX

運行main類報了這個錯 錯誤: 找不到或無法加載主類 XXX 經過好一番查證才找出了問題所在 原因是 maven項目的provided導致的&#xff0c;現在記錄一下。 將pom.xml中標注provided的注釋掉&#xff0c;就不報錯了。

ERROR [internal] load metadata for docker.io/library/node:20-alpine

docker編譯時報錯&#xff0c;除標題外&#xff0c;還報如下信息 ERROR: failed to solve: node:20-alpine: failed to resolve source metadata for docker.io/library/node:20-alpine: failed to do request: Head "https://registry-1.docker.io/v2/library/node/mani…

常用個人信息

目錄 常用聯系方式我的自動思維常用媒體專業相關康米相關黑歷史 常用聯系方式 QQ&#xff1a;2868679921 微信&#xff1a;Commieee 郵箱&#xff1a;sharvefoxmail.com 我的自動思維 常用媒體 嗶哩嗶哩 專業相關 博客 康米相關 QQ&#xff1a;1203361015 黑歷史 貼吧…

PyQt5學習系列之QMetaObject.connectSlotsByName

文章目錄 前言一、pandas是什么&#xff1f;二、使用步驟 1.引入庫2.讀入數據總結 學習記錄 QMetaObject.connectSlotsByName——自動將信號連接到槽&#xff08;函數&#xff09; 例如&#xff1a; from PyQt5.QtWidgets import QMainWindow, QPushButton from PyQt5.QtCore…

哪些類型的產品適合用3D形式展示?

隨著3D技術的蓬勃發展&#xff0c;眾多品牌和企業紛紛投身3D數字化浪潮&#xff0c;將產品打造成逼真的3D模型進行展示&#xff0c;消費者可以更加直觀地了解產品的特點和優勢&#xff0c;從而做出更明智的購買決策。 哪些產品適合3D交互展示&#xff1f; 產品3D交互展示具有直…

2024系統架構師--- 希賽模擬答案知識點

案例第一題&#xff1a; MVC架構包含&#xff1a;視圖、控制器、模型&#xff1b; 視圖&#xff08;View&#xff09;&#xff1a;視圖是用戶看到并與之交互的界面。視圖面向用戶顯示相關的數據&#xff0c;并能接收用戶的輸入數據&#xff0c;但是它并不能進行任何實際的業務…

深入探索微軟Edge:領略新一代瀏覽器的無限可能

深入探索微軟Edge&#xff1a;領略新一代瀏覽器的無限可能 在當今數字化時代&#xff0c;網絡瀏覽器已經成為我們日常生活中不可或缺的一部分。而隨著技術的不斷進步&#xff0c;瀏覽器的功能和性能也在不斷提升。微軟Edge作為微軟推出的全新一代瀏覽器&#xff0c;引領著瀏覽…