PBM_SETRANGE

WindowsAPI(Win32API) Advent Calendar 2015 13日目
WindowsAPI(Win32API) Advent Calendar 2015 - Adventar

PBM_SETRANGEは、プログレスバーの範囲をセットするウィンドウメッセージ・・・。

PBM_SETRANGE message (Windows)

SendMessageの第4引数にLPARAM型の値として最小値と最大値を設定する・・・。
LPARAMのLOWORDとして最小値、LPARAMのHIWORDとして最大値を指定する・・・。
LPARAMの値をセットするにはMAKELPARAMマクロを使うと便利・・・。

MAKELPARAM macro (Windows)

WM_INITDIALOGの時、

このような感じで、第4引数にMAKELPARAMで最小値0、最大値200を指定してみる・・・。
第3引数は常に0・・・。
そのあとPBM_SETPOSで50にセットすると、最大値200に対する現在値50なので、プログレスバーの進捗位置は、ちょうど4分の1の位置にセットされる・・・。

f:id:BG1:20151213150634p:plain

確かに、4分の1の位置にセットされてる・・・。

Sample/PBM_SETRANGE.cpp at master · bg1bgst333/Sample · GitHub
Sample/resource.h at master · bg1bgst333/Sample · GitHub
Sample/PBM_SETRANGE.rc at master · bg1bgst333/Sample · GitHub