Windows程式設計 讀書筆記 計時器。

2022-03-12 08:17:48 字數 740 閱讀 7081

一、計時器工作原理:

windows計時器是基於pc的硬體和rom bios構造的計時器邏輯的一種相對簡單的擴充套件。

對於每個擁有計時器的程式,windows儲存乙個每次硬體計時器滴答減少的次數,當減少為0時,windows就在應用程式訊息佇列中放置乙個wm_timer訊息,並將計數重新置為最初的值。

wm_timer的位置是在應用程式的訊息佇列裡,所以他不是非同步的,而是跟其他訊息一起參加排序。如果在接受到wm_timer訊息時,應用程式剛好在處理其他訊息,那wm_timer就要被延後執行。

wm_timer和wm_paint一樣,訊息佇列中不能存在多個wm_timer訊息,如果乙個新的wm_timer訊息加進佇列時,發現已經有乙個了,那兩個就會合併為乙個。

二、killtimer後,計時器停止,但已經產生的wm_timer訊息會繼續執行。

三、用**函式處理計時器事務。

static void callback timerproc(hwnd hwnd,uint message,uint itimerid,dword dwtime);

settimer(2,1000,timerproc);

**函式必須是靜態成員函式,或者是全域性函式。

用**函式後,ontimer()函式裡的內容就不會被執行了。

四、不指定視窗和id的計時器

int timerid = settimer(null,0,1000,timerproc);

killtimer(null,timerid);

Windows程式設計 讀書筆記 鍵盤。

一 鍵盤事件處理過程。1,擊鍵。2,windows和鍵盤驅動程式將硬體掃瞄嗎轉化為格式訊息,放在windows維護的 系統訊息佇列 中。3,windows從系統訊息佇列中,取乙個訊息,傳送給當前獲得焦點的視窗的應用程式訊息佇列。4,應用程式處理該該訊息完畢後,windows才能接下來從 系統訊息佇列...

讀書筆記 Windows核心程式設計

第二章 從windows nt後,windows所有版本都用unicode來構建。如果輸入乙個非unicom的字串,如ansi,函式會將其先轉換為unicode,再把結果傳回作業系統,這樣經過轉換後,需要更多的記憶體,而且執行速度更慢。並且,目前已知的windows的這些轉換函式存在一些bug。所有...

《Windows核心程式設計》讀書筆記(一)

第1章對程式錯誤的處理 1 常見的windows函式的返回型別 void 無返回值型,該函式的執行不可能失敗。windows函式很少此型別 bool 函式執行失敗則返回0,否則返回非0 handle 失敗則返回null,否則返回乙個可操作的物件的handle。注 有些函式會返回乙個控制代碼值inva...