TA的每日心情 | 衰 昨天 08:23 |
---|
签到天数: 227 天 [LV.7]常住居民III
论坛元老
- 积分
- 3840
|
本帖最后由 ceffans 于 2024-8-2 16:03 编辑
- //先计算弧形分块
- SStringW sstrContent = L"1234567890A";
- int nWords = sstrContent.GetLength();
- double dStepAngle = 180.0 / (nWords + 1);
- //指定弧形的圆心,此处以绘制文本区域的下边的中点为圆心
- CRect rcWindow = GetClientRect();
- CPoint ptOrg = rcWindow.CenterPoint();
- ptOrg.y = rcWindow.bottom;
- for (int i = 0; i < nWords; i++)
- {
- double dAngle = i * dStepAngle + dStepAngle;
- SStringW sstrWord = sstrContent.GetAt(i);
- SMatrix matrix;
- matrix.setRotate(dAngle + 270, ptOrg.x, ptOrg.y); //此处按角度是以90度的方向开始,就给加了270度
- pRT->SetTransform(matrix.GetData(), NULL);
- pRT->DrawText(sstrWord, 1, rcWindow, DT_SINGLELINE | DT_CENTER | DT_TOP);
- pRT->SetTransform(SMatrix().GetData());
- }
复制代码
|
|