锘??xml version="1.0" encoding="utf-8" standalone="yes"?> 鏈甯哥敤鐨勫彇寰楀茍閲婃斁璁懼鍐呭鍙ユ焺鐨勬柟娉曟槸錛屽湪澶勭悊WM_PAINT娑堟伅鏃訛紝浣跨敤BeginPaint鍜孍ndPaint鍛煎彨錛?/p>
hdc = BeginPaint (hwnd, &ps) ; 鍙橀噺ps鏄瀷鎬佷負PAINTSTRUCT鐨勭粨鏋勶紝璇ョ粨鏋勭殑hdc瀛楁鏄疊eginPaint浼犲洖鐨勮澶囧唴瀹瑰彞鏌勩?PAINTSTRUCT緇撴瀯鍙堝寘鍚竴涓悕涓簉cPaint鐨凴ECT錛堢煩褰級緇撴瀯錛宺cPaint瀹氫箟涓涓寘鍥寸獥鍙f樉紺哄尯鍩?strong>鏃犳晥鑼冨洿鐨勭煩褰€?strong>浣跨敤浠嶣eginPaint鑾峰緱鐨勮澶囧唴瀹瑰彞鏌勶紝鍙兘鍦ㄨ繖涓尯鍩熷唴緇樺浘銆?/strong>BeginPaint鍛煎彨浣胯鍖哄煙鏈夋晥銆?/p>
榪欎釜璁懼鍐呭閫傜敤浜庣獥鍙e彞鏌?strong>涓篽wnd鐨勬樉紺哄尯鍩?/strong>銆傝繖浜涘懠鍙笌BeginPaint鍜孍ndPaint鐨勭粍鍚堜箣闂寸殑鍩烘湰鍖哄埆鏄紝鍒╃敤浠嶨etDC浼犲洖鐨勫彞鏌?strong>鍙互鍦ㄦ暣涓樉紺哄尯鍩熶笂緇樺浘銆傚綋鐒訛紝 GetDC鍜孯eleaseDC涓嶄嬌鏄劇ず鍖哄煙涓換浣曞彲鑳界殑鏃犳晥鍖哄煙鍙樻垚鏈夋晥銆?/p>
榪欎釜璁懼鍐呭闄や簡鏄劇ず鍖哄煙涔嬪錛岃繕鍖呮嫭紿楀彛鐨勬爣棰樺垪銆佽彍鍗曘佹粴鍔ㄦ潯鍜屾鏋訛紙frame錛夈侴etWindowDC鍑芥暟寰堝皯浣跨敤錛屽鏋滄兂灝濊瘯鐢ㄤ竴鐢ㄥ畠錛屽垯蹇呴』鎷︽埅澶勭悊WM_NCPAINT娑堟伅錛學indows浣跨敤璇ユ秷鎭湪紿楀彛鐨勯潪鏄劇ず鍖哄煙涓婄粯鍥俱?/p>
鍏跺畠琛岀▼搴?br>
EndPaint (hwnd, &ps) ;
Windows紼嬪簭榪樺彲浠ュ湪澶勭悊闈濿M_PAINT娑堟伅鏃跺彇寰楄澶囧唴瀹瑰彞鏌勶細
hdc = GetDC (hwnd) ;
鍏跺畠琛岀▼搴?nbsp;
ReleaseDC (hwnd, hdc) ;
Windows紼嬪簭榪樺彲浠ュ彇寰楅傜敤浜庢暣涓獥鍙o紙鑰屼笉浠呴檺浜庣獥鍙g殑鏄劇ず鍖哄煙錛夌殑璁懼鍐呭鍙ユ焺錛?br>hdc = GetWindowDC (hwnd) ;
鍏跺畠琛岀▼搴?br>ReleaseDC (hwnd, hdc) ;
{
static int cxChar, cxCaps, cyChar, cyClient, iVscrollPos ;
HDC hdc ;
int i, y ;
PAINTSTRUCT ps ;
TCHAR szBuffer[10] ;
TEXTMETRIC tm ;
switch (message)
{
case WM_CREATE:
hdc = GetDC (hwnd) ;
GetTextMetrics (hdc, &tm) ;
cxChar = tm.tmAveCharWidth ;
cxCaps = (tm.tmPitchAndFamily & 1 ? 3 : 2) * cxChar / 2 ;
cyChar = tm.tmHeight + tm.tmExternalLeading ;
ReleaseDC (hwnd, hdc) ;
SetScrollRange (hwnd, SB_VERT, 0, NUMLINES - 1, FALSE) ;
SetScrollPos (hwnd, SB_VERT, iVscrollPos, TRUE) ;
return 0 ;
case WM_SIZE:
cyClient = HIWORD (lParam) ;
return 0 ;
case WM_VSCROLL:
switch (LOWORD (wParam))
{
case SB_LINEUP:
iVscrollPos -= 1 ;
break ;
case SB_LINEDOWN:
iVscrollPos += 1 ;
break ;
case SB_PAGEUP:
iVscrollPos -= cyClient / cyChar ;
break ;
case SB_PAGEDOWN:
iVscrollPos += cyClient / cyChar ;
break ;
case SB_THUMBPOSITION:
iVscrollPos = HIWORD (wParam) ;
break ;
default :
break ;
}
iVscrollPos = max (0, min (iVscrollPos, NUMLINES - 1)) ;
if (iVscrollPos != GetScrollPos (hwnd, SB_VERT))
{
SetScrollPos (hwnd, SB_VERT, iVscrollPos, TRUE) ;
InvalidateRect (hwnd, NULL, TRUE) ;
}
return 0 ;
case WM_PAINT:
hdc = BeginPaint (hwnd, &ps) ;
for (i = 0 ; i < NUMLINES ; i++)
{
y = cyChar * (i - iVscrollPos) ;
TextOut (hdc, 0, y,
sysmetrics[i].szLabel,
lstrlen (sysmetrics[i].szLabel)) ;
TextOut (hdc, 22 * cxCaps, y,
sysmetrics[i].szDesc,
lstrlen (sysmetrics[i].szDesc)) ;
SetTextAlign (hdc, TA_RIGHT | TA_TOP) ;
TextOut (hdc, 22 * cxCaps + 40 * cxChar, y, szBuffer,
wsprintf (szBuffer, TEXT ("%5d"),
GetSystemMetrics (sysmetrics[i].iIndex))) ;
SetTextAlign (hdc, TA_LEFT | TA_TOP) ;
}
EndPaint (hwnd, &ps) ;
return 0 ;
case WM_DESTROY:
PostQuitMessage (0) ;
return 0 ;
}
return DefWindowProc (hwnd, message, wParam, lParam) ;
}
WndProc紿楀彛娑堟伅澶勭悊紼嬪簭鍦ㄥ鐞哤M_CREATE娑堟伅鏃跺鍔犱簡涓ゆ潯鍙欒堪錛屼互璁劇疆鍨傜洿婊氬姩鏉$殑鑼冨洿鍜屽垵濮嬩綅緗細
SetScrollRange (hwnd, SB_VERT, 0, NUMLINES - 1, FALSE) ;
SetScrollPos (hwnd, SB_VERT, iVscrollPos, TRUE) ;
鍏鋒湁NUMLINES琛屾枃瀛楋紝鎵浠ユ粴鍔ㄦ潯鑼冨洿琚瀹氫負0鑷砃UMLINES-1銆傛粴鍔ㄦ潯鐨勬瘡涓綅緗搴斾簬鍦ㄦ樉紺哄尯鍩熼《閮ㄦ樉紺虹殑涓涓枃瀛楄銆傚鏋滃嵎鍔ㄦ柟鍧楃殑浣嶇疆涓?錛屽垯絎竴琛屼細琚斁緗湪鏄劇ず鍖哄煙鐨勯《閮ㄣ傚鏋滀綅緗ぇ浜?錛屽叾瀹冭灝變細鍑虹幇鍦ㄦ樉紺哄尯鍩熺殑欏墮儴銆傚綋浣嶇疆涓篘UMLINES-1鏃訛紝鍒欐渶鍚庝竴琛屾枃瀛楀嚭鐜板湪鏄劇ず鍖哄煙鐨勯《閮ㄣ?br>
涓轟簡鏈夊姪浜庡鐞哤M_VSCROLL娑堟伅錛屽湪紿楀彛娑堟伅澶勭悊紼嬪簭涓畾涔変簡涓涓潤鎬佸彉閲廼VscrollPos錛岃繖涓鍙橀噺鏄粴鍔ㄦ潯鍐呭嵎鍔ㄦ柟鍧楃殑鐩墠浣嶇疆銆?strong>瀵逛簬SB_LINEUP鍜孲B_LINEDOWN錛屽彧闇瑕佸皢鍗峰姩鏂瑰潡璋冩暣涓涓崟浣嶇殑浣嶇疆銆傚浜嶴B_PAGEUP鍜孲B_PAGEDOWN錛屾垜浠兂縐誨姩涓鏁撮潰鐨勫唴瀹癸紝鎴栬呯Щ鍔╟yClient /cyChar涓崟浣嶇殑浣嶇疆銆傚浜嶴B_THUMBPOSITION錛屾柊鐨勫嵎鍔ㄦ柟鍧椾綅緗槸wParam鐨勯珮瀛楃粍銆?/strong>SB_ENDSCROLL鍜孲B_THUMBTRACK娑堟伅琚拷鐣ャ?/p>
鍦ㄧ▼搴忎緷鎹敹鍒扮殑WM_VSCROLL娑堟伅璁$畻鍑烘柊鐨刬VscrollPos鍊煎悗錛岀敤min鍜宮ax瀹忔潵璋冩暣iVscrollPos錛屼互紜繚瀹冨湪鏈澶у間笌鏈灝忓間箣闂淬傜▼搴忕劧鍚庡皢iVscrollPos涓庡懠鍙獹etScrollPos鍙栧緱鐨勫厛鍓嶄綅緗浉姣旇緝錛屽鏋滃嵎鍔ㄤ綅緗彂鐢熶簡鍙樺寲錛屽垯浣跨敤SetScrollPos鏉ヨ繘琛屾洿鏂幫紝騫朵笖鍛煎彨InvalidateRect浣挎暣涓獥鍙f棤鏁?/strong>銆?/p>
鍙皢紿楀彛鏄劇ず鍖哄煙鏍囪涓烘棤鏁堜互浜х敓WM_PAINT娑堟伅錛屽浜庢煇浜涘簲鐢ㄧ▼搴忔潵璇翠篃璁鎬笉鏄畬鍏ㄤ護浜烘弧鎰忕殑閫夋嫨銆傚湪鍛煎彨InvalidateRect涔嬪悗錛學indows灝哤M_PAINT娑堟伅鏀懼叆娑堟伅闃熷垪涓紝鏈鍚庣敱紿楀彛娑堟伅澶勭悊紼嬪簭澶勭悊瀹冦傜劧鑰岋紝Windows灝哤M_PAINT娑堟伅褰撴垚浣庝紭鍏堢駭娑堟伅錛屽鏋滅郴緇熸湁璁稿鍏跺畠鐨勫姩浣滄鍦ㄥ彂鐢燂紝閭d箞涔熻浼氳鎮ㄧ瓑寰呬竴浼氬効宸ュか銆傝繖鏃訛紝褰撳璇濇娑堝け鏃訛紝灝嗕細鍑虹幇涓浜涚┖鐧界殑銆屾礊銆嶏紝紼嬪簭浠嶇劧絳夊緟鏇存柊瀹冪殑紿楀彛銆?/p>
濡傛灉鎮ㄥ笇鏈涚珛鍗蟲洿鏂版棤鏁堝尯鍩燂紝鍙互鍦ㄥ懠鍙獻nvalidateRect涔嬪悗鍛煎彨UpdateWindow錛?/strong> UpdateWindow (hwnd) ; 濡傛灉鏄劇ず鍖哄煙鐨勪換涓閮ㄥ垎鏃犳晥錛屽垯UpdateWindow灝嗗鑷碬indows鐢╓M_PAINT娑堟伅鍛煎彨紿楀彛娑堟伅澶勭悊紼嬪簭錛堝鏋滄暣涓樉紺哄尯鍩熸湁鏁堬紝鍒欎笉鍛煎彨紿楀彛娑堟伅澶勭悊紼嬪簭錛夈傝繖涓WM_PAINT娑堟伅涓嶈繘鍏ユ秷鎭槦鍒楋紝鐩存帴鐢盬indows鍛煎彨紿楀彛娑堟伅澶勭悊紼嬪簭銆傜獥鍙f秷鎭鐞嗙▼搴忓畬鎴愭洿鏂板悗绔嬪嵆閫鍑猴紝Windows灝嗘帶鍒朵紶鍥炵粰紼嬪簭涓璘pdateWindow鍛煎彨涔嬪悗鐨勫彊榪般?/p>
InvalidateRect鍛煎彨浜х敓涓涓猈M_PAINT娑堟伅銆?br>
鍦ㄥ鐞嗗畬婊氬姩鏉℃秷鎭悗錛屼笉鏇存柊鏄劇ず鍖哄煙錛岀浉鍙嶏紝瀹冨懠鍙獻nvalidateRect浣挎樉紺哄尯鍩熷け鏁堛傝繖瀵艱嚧Windows灝嗕竴涓猈M_PAINT娑堟伅鏀懼叆娑堟伅闃熷垪涓?br>鏈濂借兘浣縒indows紼嬪簭鍦ㄥ搷搴擶M_PAINT娑堟伅鏃跺畬鎴愭墍鏈夌殑鏄劇ず鍖哄煙緇樺埗鍔熻兘銆傚洜涓虹▼搴忓繀欏誨湪涓鎺ユ敹鍒癢M_PAINT娑堟伅鏃跺氨鏇存柊鏁翠釜鏄劇ず鍖哄煙錛屽鏋滃湪紼嬪簭鐨勫叾瀹冮儴鍒嗕篃緇樺埗鐨勮瘽錛屽皢寰堝彲鑳戒嬌紼嬪簭浠g爜閲嶅銆?/p>
]]>
97精品依人久久久大香线蕉97|
久久人搡人人玩人妻精品首页|
嫩草伊人久久精品少妇AV|
a高清免费毛片久久|
内射无码专区久久亚洲|
乱亲女H秽乱长久久久|
精品国产婷婷久久久|
久久久精品人妻一区二区三区四|
办公室久久精品|
亚洲va久久久噜噜噜久久狠狠|
国产成人精品久久一区二区三区av|
久久夜色精品国产亚洲|
国产福利电影一区二区三区久久老子无码午夜伦不
|
久久亚洲国产精品五月天婷|
久久久久99精品成人片试看|
|
久久久国产精品|
1000部精品久久久久久久久|
亚洲欧美国产精品专区久久|
国产精品日韩深夜福利久久|
精品久久久久久国产潘金莲|
久久人人爽人人爽人人片AV不
|
国产∨亚洲V天堂无码久久久|
久久久久久国产精品无码下载|
久久免费99精品国产自在现线|
AA级片免费看视频久久|
久久夜色tv网站|
久久最新精品国产|
久久久久综合网久久|
久久伊人精品青青草原高清|
国产一区二区三区久久精品|
成人免费网站久久久|
成人久久精品一区二区三区
|
欧美激情精品久久久久|
色综合久久久久|
久久久久国产成人精品亚洲午夜|
青青青青久久精品国产h|
国产精品美女久久久网AV|
国产高清美女一级a毛片久久w|
久久人人爽人人爽人人片AV东京热
|
中文字幕精品无码久久久久久3D日动漫|