windows程式設計 滾動條

2021-04-22 14:14:25 字數 1769 閱讀 9036

#include

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

struct

sysmetrics=;

lresult callback wndproc(hwnd,uint,wparam,lparam);//視窗函式原型

int winapi winmain(hinstance hinstance,hinstance hprevinstance,pstr szcmdline,int icmdshow)

text("the hello program"),

cw_usedefault,

cw_usedefault,

cw_usedefault,

cw_usedefault,

null,

null,

hinstance,

null);

showwindow(hwnd,icmdshow);

updatewindow(hwnd);

while(getmessage(&msg, null,0,0))

return msg.wparam;

}lresult callback wndproc(hwnd hwnd,uint message,wparam wparam,lparam lparam)

si.fmask=sif_pos;

setscrollinfo(hwnd,sb_vert,&si,true);

getscrollinfo(hwnd,sb_vert,&si);

if (si.npos!=ivertpos)

return 0;

case wm_hscroll:

si.cbsize=sizeof(si);

si.fmask=sif_all;

getscrollinfo(hwnd,sb_horz,&si);

ihorzpos=si.npos;

switch(loword(wparam))

si.fmask=sif_pos;

setscrollinfo(hwnd,sb_horz,&si,true);

getscrollinfo(hwnd,sb_horz,&si);

if(si.npos!=ihorzpos)

return 0;

case wm_paint:

hdc=beginpaint(hwnd,&ps);

si.cbsize=sizeof(si);

si.fmask=sif_pos;

getscrollinfo(hwnd,sb_vert,&si);

ivertpos=si.npos;

getscrollinfo(hwnd,sb_horz,&si);

ihorzpos=si.npos;

ipaintbeg=max(0,ivertpos+ps.rcpaint.top / cychar);

ipaintend=min(numlines-1,ivertpos+ps.rcpaint.bottom / cychar);

for(i=ipaintbeg;i<=ipaintend;i++)

endpaint(hwnd,&ps);

return 0;

case wm_destroy:

postquitmessage(0);

return 0;

}return defwindowproc(hwnd,message,wparam,lparam);

}

window程式設計之滾動條 老式滾動條

顯示滾動條,只需要在createwindow的第三個引數中包括視窗樣式 ws 識別符號ws vscroll 垂直捲動 和 或ws hscroll 水平捲動 即可 這些捲動列通常放在視窗的右部和底部,伸展為顯示區域的整個長度或寬度。顯示區域不包含捲動列所佔據的空間。但是有這些是遠遠不夠滴.1.首先,滾...

07 Windows程式設計 視窗滾動條

兩個函式 getscrolnfo和setscrollnfo 乙個結構 scrollinfo 兩個訊息 wm create和wm size 滾動條結構體 typedef struct tagscrollinfo scrollinfo,lpscrollinfo cbsize 以位元組為單位,結構體大小。...

python橫向滾動條 控制滾動條

調過js指令碼控制 python 1.coding utf 8 2.from selenium import webdriver 3.import time 5.driver webdriver.firefox 6.driver.get 7.搜尋 8.driver.find element by i...