1. 程式人生 > >深入理解windows 訊息機制

深入理解windows 訊息機制

再例如,按下一個按鈕,他向父視窗傳送的訊息也可以看作是一個控制元件通知訊息;單擊滑鼠所產生的訊息可以由主視窗直接處理,然後交給控制元件視窗處理。其中視窗訊息及控制元件通知訊息主要由視窗類即直接或間接由CWND類派生類處理。相對視窗訊息及控制元件通知訊息而言,命令訊息的處理物件範圍就廣得多,它不僅可以由視窗類處理,還可以由文擋類,文件模板類及應用類所處理。
    由於控制元件通知訊息很重要的,程式設計者用的也比較多,但是具體的含義往往令初學者暈頭轉向,所以我決定把常見的幾個列出來供大家參考:
按扭控制元件
BN_CLICKED        使用者單擊了按鈕
 BN_DISABLE 按鈕被禁止
 BN_DOUBLECLICKED  使用者雙擊了按鈕
 BN_HILITE  用/戶加亮了按鈕
 BN_PAINT  按鈕應當重畫
 BN_UNHILITE 加亮應當去掉

組合框控制元件

 CBN_CLOSEUP 組合框的列表框被關閉
 CBN_DBLCLK 使用者雙擊了一個字串
 CBN_DROPDOWN 組合框的列表框被拉出
 CBN_EDITCHANGE 使用者修改了編輯框中的文字
 CBN_EDITUPDATE 編輯框內的文字即將更新
 CBN_ERRSPACE 組合框記憶體不足
 CBN_KILLFOCUS 組合框失去輸入焦點
 CBN_SELCHANGE 在組合框中選擇了一項
 CBN_SELENDCANCEL 使用者的選擇應當被取消
 CBN_SELENDOK 使用者的選擇是合法的
 CBN_SETFOCUS 組合框獲得輸入焦點

編輯框控制元件
 EN_CHANGE 編輯框中的文字己更新
 EN_ERRSPACE 編輯框記憶體不足
 EN_HSCROLL 使用者點選了水平滾動條
 EN_KILLFOCUS 編輯框正在失去輸入焦點
 EN_MAXTEXT 插入的內容被截斷
 EN_SETFOCUS 編輯框獲得輸入焦點
 EN_UPDATE 編輯框中的文字將要更新
 EN_VSCROLL 使用者點選了垂直滾動條訊息含義

列表框控制元件

 LBN_DBLCLK 使用者雙擊了一項
 LBN_ERRSPACE 列表框記憶體不夠
 LBN_KILLFOCUS 列表框正在失去輸入焦點
 LBN_SELCANCEL 選擇被取消
 LBN_SELCHANGE 選擇了另一項
 LBN_SETFOCUS 列表框獲得輸入焦點

相關推薦

深入理解windows 訊息機制

再例如,按下一個按鈕,他向父視窗傳送的訊息也可以看作是一個控制元件通知訊息;單擊滑鼠所產生的訊息可以由主視窗直接處理,然後交給控制元件視窗處理。其中視窗訊息及控制元件通知訊息主要由視窗類即直接或間接由CWND類派生類處理。相對視窗訊息及控制元件通知訊息而言,命令訊息的處理物件範圍就廣得多,它不僅可以由視窗類處

深入理解android訊息機制(一)——handler Looper原始碼

android 重要核心知識點,怎麼深刻理解都不為過,本篇部落格從常用api ,Looper Hanldery以及HanlderTread原始碼角度解讀 一 常用api,主執行緒接收處理訊息 private Handler handler = ne

深入理解 Handler 訊息機制

記得很多年前的一次面試中,面試官問了這麼一個問題,你在專案中一般如何實現執行緒切換? 他的本意應該是考察 RxJava 的使用,只是我的答案是 Handler,他也就沒有再追問下去了。在早期 Android 開發的荒蕪時代,Handler 的確承擔了專案中大部分的執行緒切換工作,通常包括子執行緒更新 UI 和

iOS runtime探究(二): 從runtime開始深入理解OC訊息轉發機制

你要知道的runtime都在這裡 本文主要講解runtime相關知識,從原理到實踐,由於包含內容過多分為以下五篇文章詳細講解,可自行選擇需要了解的方向: 本文是系列文章的第二篇文章從runtime開始: 深入理解OC訊息轉發機制,主要從runtime

深入理解Windows系統——3.Windows同步機制

定時 定時器 事件 線程 深入理解 自旋 多線程並發 內核 執行 windows系統在內核態,用戶態,提供了很多種同步機制,用於控制都處理器、多線程並發。 高IRQL的同步 互鎖操作 自旋鎖 排隊的自旋鎖 棧內排隊自旋鎖 執行體的互鎖操作 低IRQL的同步 互斥體(

深入理解js記憶體機制

原文連結:深入理解js記憶體機制 js的記憶體機制在很多前端開發者看來並不是那麼重要,但是如果你想深入學習js,並將它利用好,打造高質量高效能的前端應用,就必須要了解js的記憶體機制。對於記憶體機制理解了以後,一些基本的問題比如最基本的引用資料型別和引用傳遞到底是怎麼回事兒?比如

學習筆記10.4----Windows訊息機制

1)作業系統訊息機制:百度百科——訊息機制 解釋的很清楚。作業系統掃描輸入裝置狀態-(轉換為訊息)-傳送給焦點窗體 ,對於每一個正在執行的Windows應用程式,系統為其建立一個“訊息佇列”。 2)control的invoke,begin invoke .委託的invok

深入理解雙親委託機制

JVM設計者把類載入階段中的“通過'類全名'來獲取定義此類的二進位制位元組流”這個動作放到Java虛擬機器外部去實現,以便讓應用程式自己決定如何去獲取所需要的類。實現這個動作的程式碼模組稱為“類載入器”。 1.類與類載入器 對於任何一個類,都需要由載入它的類載入器和這個類來確立其在JVM

深入理解docker訊號機制以及dumb-init的使用

一、前言 ● 容器中部署的時候往往都是直接執行二進位制檔案或命令,這樣對於容器的作用更加直觀,但是也會出現新的問題,比如子程序的資源回收、釋放、託管等,處理不好,便會成為可怕的殭屍程序 ● 本文主要討論一下docker容器中程序之間訊號處理以及對程序管理的問題 二、環境準備

python學習--python實現按鍵精靈之windows訊息機制文章整理

1.如何利用Python和win32程式設計避免重複性體力勞動(一)——開始、FindWindow和FindWindowEx http://blog.csdn.net/seele52/article/details/17504925 2.如何利用Python和win32程式設計避免重

深入理解Java回收機制

參考:深入理解Java虛擬機器 一、垃圾回收機制的意義 Java語言中一個顯著的特點就是引入了垃圾回收機制,使c++程式設計師最頭疼的記憶體管理的問題迎刃而解,它使得Java程式設計師在編寫程式的時候不再需要考慮記憶體管理。由於有個垃圾回收機制,Java中的物件不

深入理解HTTP訊息頭(一)

初識HTTP訊息頭     但凡搞 WEB 開發的人都離不開HTTP(超文字傳輸協議),而要了解HTTP,除了HTML本身以外,還有一部分不可忽視的就是HTTP訊息頭。 做 過Socket程式設計的人都知道,當我們設計一個通訊協議時,“訊息頭/訊息

windows訊息機制詳解

MessageBox("ComboBox 選項"+str+" selected!"); 在按鈕1 的響應函式OnButton1()中新增程式碼: m_tab1.SetCurSel(0); NMHDR nmhdr; nmhdr.code=TCN_SELCHANGE; nmhdr.hwndFrom=GetDlgI

180108 逆向-Windows訊息機制(鍵盤訊息

1625-5 王子昂 總結《2018年1月8日》 【連續第465天總結】 A. Windows訊息系統-鍵盤訊息 B. 鍵盤訊息 概述 應用程式從系統接收到的關於鍵盤的訊息可以分為兩類:擊鍵和字元。 物理層面上,對於某個按鍵(例如A),會發出“按

深入理解java反射機制

轉載自:https://blog.csdn.net/u012585964/article/details/52011138一,java的核心機制        java有兩種核心機制:java虛擬機器(JavaVirtual Machine)與垃圾收集機制(Garbage c

windows訊息機制

一 Windows中有一個系統訊息佇列,對於每一個正在執行的Windows應用程式,系統為其建立一個“訊息佇列”,即應用程式佇列,用來存放該程式可能 建立的各種視窗的訊息。應用程式中含有一段稱作“訊息迴圈”的程式碼,用來從訊息佇列中檢索這些訊息並把它們分發到相應的視窗函式中。 二 Win

MFC(一)——WINDOWS訊息機制

建立一個完整的視窗需要經過下面四個操作步驟: 設計一個視窗類; 註冊視窗類; 建立視窗; 顯示及更新視窗。 #include <Windows.h> #include <stdio.h> LRESULT CALLBACK Wi

Windows訊息機制以及相關API

 訊息系統對於一個win32程式來說十分重要,它是一個程式執行的動力源泉。一個訊息,是系統定義的一個32位的值,他唯一的定義了一個事件,向 Windows發出一個通知,告訴應用程式某個事情發生了。例如,單擊滑鼠、改變視窗尺寸、按下鍵盤上的一個鍵都會使Windows傳送一個訊

windows訊息機制中lparam與wparam兩個引數的分析

一. WPARAM 和 LPARAM 本質上沒有什麼區別:都是32位數, 但是區別也還是有的:MICROSOFT在使用時兩種引數分別代表不同的含義和內容,WPARAM常常代表一些控制元件的ID或者高位低位組合起來分別表示滑鼠的位置,如果訊息的傳送者需要將某種結構的指標或者是

深入理解DOM事件機制系列第三篇——事件物件

前面的話   在觸發DOM上的某個事件時,會產生一個事件物件event,這個物件中包含著所有與事件有關的資訊。所有瀏覽器都支援event物件,但支援方式不同。本文將詳細介紹事件物件 獲取事件物件   【1】一般地,event物件是事件程式的第一個引數   [注意