Windows程式設計 視窗鍵盤訊息滾動事件

2021-10-02 18:22:37 字數 1708 閱讀 9136

#pragma once

#include

#define numlines ((int)(sizeof sysmetrics/sizeof sysmetrics[0]))

struct

sysmetrics=

;

numlines 巨集定義是為了得到sysmetrics的數量

#include

#include

"systems.h"

lresult callback wndprocfun

(hwnd, uint, wparam, lparam)

;int winapi winmain

(hinstance hinstance, hinstance hprevinstance, pstr szcmdline,

int icmdshow)

hwnd =

createwindow

text

("第五講 鍵盤控制視窗垂直水平滾事件"

)null

,null

, hinstance,

null);

showwindow

(hwnd, icmdshow)

;updatewindow

(hwnd)

;while

(getmessage

(&msg,

null,0

,0))

return msg.wparam;

}lresult callback wndprocfun

(hwnd hwnd, uint message, wparam wparam, lparam lparam)

endpaint

(hwnd,

&ps)

;return0;

case wm_keydown:

switch

(wparam)

return0;

case wm_vscroll:

// 獲取所有垂直滾動條資訊

si.cbsize =

sizeof

(si)

; si.fmask = sif_all;

// 整個結構都有效

getscrollinfo

(hwnd, sb_vert,

&si)

;// sb_vert 設定所綻的視窗上標準垂直滾動條引數

ivertpos = si.npos;

switch

(loword

(wparam)

) si.fmask = sif_pos;

setscrollinfo

(hwnd, sb_vert,

&si, true)

;getscrollinfo

(hwnd, sb_vert,

&si)

;// 如果位置已經更改,滾動視窗並且進行更新

if(si.npos != ivertpos)

return0;

case wm_destroy:

postquitmessage(0

);return0;

}return

defwindowproc

(hwnd, message, wparam, lparam)

;}

執行結果只能垂直滾動,水平滾動參考即可,

Windows程式設計 視窗和訊息

include lresult callback wndproc hwnd,uint,wparam,lparam int winapi winmain hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icmdshow te...

windows鍵盤訊息

鍵盤訊息分為擊鍵訊息和字元訊息 擊鍵訊息,如 wm keydown wm keyup wm syskeydown wm syskeyup 字元訊息,如 wm char wm deadchar wm syschar wm sysdeadchar 帶有sys表示一般交給defwindowproc處理,如...

Windows鍵盤訊息處理

本文大部分來自msdn和的部落格,我在實踐的基礎上再作了一些總結。1,虛擬鍵 vk 鍵盤上每乙個鍵對應乙個掃瞄碼,掃瞄碼是oem廠商制定的,不同的廠商生產的鍵盤同樣乙個按鍵的掃瞄碼都有可能出現不一致的情況,為了擺脫由於系統裝置不一致的情況,通過鍵盤驅動程式將掃瞄碼對映為統一的虛擬鍵碼表示,從而達到所...