c++ - MFC CPen::CreatePen 线宽

标签 c++ mfc drawing line

在以下情况下,如何确定要在构造函数或 CPen::CreatePen 中设置的线宽:

  1. 例如,如果我以 60% 的比例显示图像,并且我需要我的线条在屏幕上为 1 毫米。
  2. 如果我希望我的线宽为图像最大(宽度,高度)的 0.01%

最佳答案

首先,CPen的width的类型是int,所以必须使用整型。

如果你使用第二个方案,下面的代码是可用的,但是,你必须关心宽度的类型和值。

CImage image;   

float max_value = static_cast<float>(max(image.GetWidth(), image.GetHeight()));

//get value for 1%
float pen_width = max_value * 0.01f;

CPen pen(PS_SOLID, static_cast<int>(pen_width), RGB(0, 0, 0));

关于c++ - MFC CPen::CreatePen 线宽,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20653056/

相关文章:

c++ - 检查 PreTranslateMessage 中的类时出现 CInvalidArgumentException

从平板电脑输入绘制平滑的线条

c++ - 访问仿函数中的 using 声明 : a scope related question

c++ - 使列表控件中的单个项目可编辑(C++、MFC)

c++ - 以编程方式创建 QWidgets 时遇到问题

c++ - 如何捕捉窗口大小调整?

c# - 如何从位图中获取 Bitsperpixel

python - 同一绘图上的多个对象 (MATPLOTLIB)

c++ - 将 C++ vector 转换为 char ** 没有内存泄漏

c++ - 菊花链函数调用指针