windows程式設計筆記3

2021-06-02 06:49:55 字數 1180 閱讀 8460

1.imouse = getsystemmetrics(sm_mousepresent);//檢查滑鼠是否安裝

cbuttons = getsystemmetrics(sm_cmousebuttons);///檢查滑鼠鍵個數

wdnclass.hcursor = loadcursor(null, idc_arrow);//指定視窗的預設游標

2.滑鼠事件中lparam值包含了滑鼠位置。

x = loword(lparam);

y = hiword(lparam);

wparam值指示滑鼠鍵及shift及ctrl鍵狀態。

wparam&mk_shift !=0 //說明按滑鼠鍵時shift鍵也按下了。

3.希望視窗接受到雙擊事件,需要設定視窗風格。

wndclass.style = cs_dblclks;

4.非客戶區滑鼠訊息。

nc not client,有此標記的大多為非客戶區訊息,如ncpaint等。

wparam、lparam與客戶區滑鼠訊息有區別。

wparam指明移動或者單擊滑鼠鍵的非客戶區位置,winuser.h中以ht開頭的標誌符。

lparam高、低位分別表示y、x座標,注意是螢幕的而不像客戶區內訊息的是客戶區座標,使用時需要裝換。

screentoclient(hwnd,&pt);

clienttoscreen(hwnd,&pt);

5.wm_nchittest

非客戶區命中測試,此訊息優先於所有其他的客戶區和非客戶區滑鼠訊息。其中lparam含有滑鼠x、y值,wparam沒有實際意義。對此訊息的操作可以遮蔽所有滑鼠訊息,很強大。

6.windows使用wm_nchittest訊息產生所有其他滑鼠訊息。

7.滑鼠游標的操作

滑鼠游標有個顯示計數,通過showcursor(true)增加,通過showcursor(false)減少。getcursorpos(&pt)獲取游標位置。setcursorpos(x,y)設定位置。

8.getwindowlong(hwnd,gwl_hinstance);//獲取視窗的hinstance

9.getcapture releasecapture。獲取、釋放滑鼠,即使滑鼠不在當前視窗內。

ps:滑鼠操作是當前windows最為常用的操作之一,使用較為頻繁,但是不難,較易理解。

Windows核心程式設計筆記 (3)核心物件

每個核心物件都只是乙個記憶體塊,它由作業系統核心分配,並只能由作業系統核心訪問,這個記憶體塊是乙個資料結構,其成員維護著於物件相關的資訊。少數成員是所有物件都有的,像安全描述符和使用計數等 大多數成員是特有的,像程序物件的程序id,檔案物件的位元組偏移量。由於核心物件的資料結構只能由作業系統核心訪問...

windows程式設計筆記

在複習socket通訊時遇到了i o復用技術這個問題,由這個問題引申出了select模型,i o通訊模型的問題,在windows下對其進行了實現。但是很多概念性的東西不是很明白,於是檢視了 windows核心程式設計 這本書,不得不說這本書對windows的很多東西講的很透徹,因為時間的原因,只專門...

Windows程式設計筆記2

1.關於hdc hdc hdc hdc getdc hwnd for int i 0 i 20 i releasedc hwnd,hdc getdc 與releasedc 一起使用。不能用於beginpain hdc beginpaint hwnd,ps textout hdc,0,0,paintd...