windows程序设计第四章的一个例程!急求!!
关于滚动框那节例程SysMets2caseWM_PAINT:hdc=BeginPaint(hwnd,&ps);for(i=0;i<NUMLINES;i++){y=cyCh...
关于滚动框那节 例程SysMets2
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 ;
-------------------------------
重点看这里
for (i = 0 ; i < NUMLINES ; i++)
{ y = cyChar * (i - iVscrollPos) ;
为什么用 i 减去iVscrolPos
这样的结果会变成负数啊,怎么能用负数作后面的Textout的纵坐标参数的值呢???!! 展开
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 ;
-------------------------------
重点看这里
for (i = 0 ; i < NUMLINES ; i++)
{ y = cyChar * (i - iVscrollPos) ;
为什么用 i 减去iVscrolPos
这样的结果会变成负数啊,怎么能用负数作后面的Textout的纵坐标参数的值呢???!! 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询