case WM_PAINT : 
hdc = BeginPaint (hwnd, &ps) ; 
for (i = 0 ; i < NUMLINES ; i++) 

TextOut (hdc, 0, cyChar * i, 
sysmetrics[i].szLabel, 
lstrlen (sysmetrics[i].szLabel)) ; TextOut (hdc, 22 * cxCaps, cyChar * i, 
sysmetrics[i].szDesc, 
lstrlen (sysmetrics[i].szDesc)) ; SetTextAlign (hdc, TA_RIGHT | TA_TOP) ; TextOut (hdc, 22 * cxCaps + 40 * cxChar, cyChar * i, szBuffer, 
wsprintf (szBuffer, TEXT ("%5d"), 
GetSystemMetrics (sysmetrics[i].iIndex))); SetTextAlign (hdc, TA_LEFT | TA_TOP) ; } 
EndPaint (hwnd, &ps) ; 
return 0;     以上是《windows程序设计第五版》第四章中,“SysMets1.c”的一部分代码,本人现在不明白的是SetTextAlign ( )与TextOut ( )的关系,究竟第一个SetTextAlign ( )是对前两个TextOut ( )的设置,还是对第三个TextOut ( )的设置。 
麻烦达人解答,虽然本人的分数不多,只是意思下而已,但是请看在本人的诚意上帮帮忙解答,在此谢过!    还有就是第二个SetTextAlign ( )与之前的三个TextOut ( )的关系,我在《Windows API-GDI入门基础知识详解(3)》(大家在网络上一搜就有了)看到了一些关于SetTextAlign ( )与TextOut ( )的解释说明,大概是程序中的两个SetTextAlign ( )都是与第三个TextOut ( )有关。 
    当我把第一个SetTextAlign ( )注释掉的时候,只是第三列的右对齐变成了居中; 
    当我把第二个SetTextAlign ( )注释掉的时候,只是第三列还是右对齐,前两列左对齐变成了右对齐。 
    本人学识有限,请达人解答解答,拜托了!