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 ( )注释掉的时候,只是第三列还是右对齐,前两列左对齐变成了右对齐。
本人学识有限,请达人解答解答,拜托了!
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 ( )注释掉的时候,只是第三列还是右对齐,前两列左对齐变成了右对齐。
本人学识有限,请达人解答解答,拜托了!
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货