jesese 发表于 2019-8-20 20:26:29

求大神解释一下

for (i = 0; i < min(cLine, cyClient / cyChar - 1); i++)
                {
                        iType = pmsg.message == WM_CHAR || pmsg.message == WM_CHAR || pmsg.message == WM_CHAR || pmsg.message == WM_CHAR;
                        GetKeyNameText(pmsg.lParam,szKeyName, sizeof(szKeyName) / sizeof(TCHAR));
                        //StringCchPrintf(szBuffer, sizeof(szBuffer), szFormat,
                        //        szMessage.message - WM_KEYFIRST],
                        //        pmsg.wParam,
                        //        (PTSTR)(iType ? TEXT(" ") : szKeyName), //如果不是字符消息 ,那么itype等于0,那么用后者
                        //        (TCHAR)(iType ? pmsg.wParam : ' '), //如果是字符消息 ,那么itype等于1,那么前者虚拟键码
                        //        LOWORD(pmsg.lParam),//重复次数
                        //        HIWORD(pmsg.lParam) & 0xFF, //键盘扫描码
                        //        0x01000000 & pmsg.lParam ? szYes : szNo,
                        //        0x20000000 & pmsg.lParam ? szYes : szNo,
                        //        0x40000000 & pmsg.lParam ? szDown : szUp, //之前状态
                        //        0x80000000 & pmsg.lParam ? szUp : szDown//当前状态
                        //        );
                        //StringCchLength(szBuffer, sizeof(szBuffer), &iTagi);
                        //TextOut(hdc, 0, cyChar*(cyClient/cyChar - 1 - i), szBuffer, iTagi);
                        StringCchPrintf(szBuffer, sizeof(szBuffer), TEXT("%13s"), szMessage.message - WM_KEYFIRST]);
                        StringCchLength(szBuffer, sizeof(szBuffer), &iTagi);
                        TextOut(hdc, 0, cyChar*(cyClient / cyChar - 1 - i), szBuffer, iTagi);

                }

                EndPaint(hwnd, &ps);
教程中35讲的例子运行时对齐出错,于是将其注释掉,单独观察TEXT("%13s")的结果,发现是居中的,求如何修改??
小白一枚 不会添加图片

jesese 发表于 2019-8-21 10:45:35

我知道原因了 ,是因为没有成功载等宽字体,用SelectObject(hdc, GetStockObject(SYSTEM_FIXED_FONT)); 就可以载入等宽了 而之前用的SelectObject(hdc, SYSTEM_FIXED_FONT);不行不知道为什么

cplus 发表于 2019-8-21 11:20:13

楼主,问题解决了,请结帖!
页: [1]
查看完整版本: 求大神解释一下