找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 活动 交友 discuz
查看: 30|回复: 0

使用AcGiTextStyle获得MTEXT的准确的宽度

[复制链接]

0

主题

0

回帖

26

积分

管理员

积分
26
发表于 2024-9-25 09:31:34 | 显示全部楼层 |阅读模式
  1. void getTextStrWidth()
  2. {
  3.          char str[132];
  4.          int rt = acedGetString(true, "/nEnter a string: ", str);
  5.          if (rt != RTNORM)
  6.          {
  7.                  acutPrintf("/nInvalid input, try again.");
  8.                  return;
  9.          }
  10.          AcGiTextStyle iStyle;
  11.          AcDbTextStyleTable* pTable = NULL;
  12.          AcDbTextStyleTableRecord* pRecord = NULL;
  13.          try {
  14.                  ARXOK(curDoc()->database()->getTextStyleTable(pTable,
  15.                          AcDb::kForRead));
  16.                  const char styleName[] = "STANDARD";
  17.                  ARXOK(pTable->getAt(styleName, pRecord, AcDb::kForRead));
  18.                  ARXOK(fromAcDbTextStyle(iStyle, pRecord->objectId()));
  19.                  pRecord->close();
  20.                  pTable->close();
  21.          }
  22.          catch (const Acad::ErrorStatus es)
  23.          {
  24.                  acutPrintf("/nError: %s", acadErrorStatusText(es));
  25.                  pRecord->close();
  26.                  pTable->close();
  27.          }
  28.          AcGePoint2d pt = iStyle.extents(str, Adesk::kFalse, _tcslen(str),
  29.                  Adesk::kTrue);
  30.          // get the width
  31.          acutPrintf("/nText string width is: /t.", pt.x);
  32.          // get the height too
  33.          acutPrintf("/nText string height is: /t.", pt.y);
  34. }
  35. //declare the following inline function in a header file
  36. inline void ARXOK(Acad::ErrorStatus what) throw(Acad::ErrorStatus)
  37. {
  38.          if (what != Acad::eOk)
  39.                  throw what;
  40. }
复制代码
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|手机版|小黑屋|膜结构网

GMT+8, 2024-12-27 21:35 , Processed in 0.130242 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2024 Discuz! Team.

快速回复 返回顶部 返回列表