构造一个函数,是在startPoint,endPoint间画一条带箭头的线段:
void CTry1View::DrawLine(POINT startPoint, POINT endPoint)
{
CClientDC dc(this);
dc.MoveTo(startPoint);
dc.LineTo(endPoint);double PI = 3.1415926;
double t=PI/4; //箭头与直线夹角
double l=0.2; //箭头边长度占直线长度的百分比

POINT arrowPoint;arrowPoint.x = (int)(l*((startPoint.x-endPoint.x)*cos(t)-(startPoint.y-endPoint.y)*sin(t))+endPoint.x);
arrowPoint.y = (int)(l*((startPoint.x-endPoint.x)*sin(t)+(startPoint.y-endPoint.y)*cos(t))+endPoint.y);
dc.MoveTo(endPoint);
dc.LineTo(arrowPoint);arrowPoint.x = (int)(l*((startPoint.x-endPoint.x)*cos(-t)-(startPoint.y-endPoint.y)*sin(-t))+endPoint.x);
arrowPoint.y = (int)(l*((startPoint.x-endPoint.x)*sin(-t)+(startPoint.y-endPoint.y)*cos(-t))+endPoint.y);
dc.MoveTo(endPoint);
dc.LineTo(arrowPoint);
}

画用例图的继承关系的带三角箭头的实线:

#include "stdafx.h"
#include "LineArrow.h"

CLineArrow::CLineArrow(void)
{
}

CLineArrow::~CLineArrow(void)
{
}

void CLineArrow::DrawDashedLineArrow(CDC* pDC)
{
CPen pen;
pen.CreatePen(PS_DASH,1,RGB(0,0,0));//笔刷类型,像素宽,笔刷颜色

}

void CLineArrow::DrawInheritLine(CDC* pDC)
{
double PI = 3.1415926;
double t = PI / 4;
double l = 0.2;

CPoint arrowlftPoint;
arrowlftPoint.x = (int)(l*((m_start.x-m_end.x)*cos(t)-(m_start.y-m_end.y)*sin(t))+m_end.x);
arrowlftPoint.y = (int)(l*((m_start.x-m_end.x)*sin(t)+(m_start.y-m_end.y)*cos(t))+m_end.y);

CPoint arrowRtPoint;
arrowRtPoint.x = (int)(l*((m_start.x-m_end.x)*cos(-t)-(m_start.y-m_end.y)*sin(-t))+m_end.x);
arrowRtPoint.y = (int)(l*((m_start.x-m_end.x)*sin(-t)+(m_start.y-m_end.y)*cos(-t))+m_end.y);

CPoint end;
end.x = (arrowlftPoint.x + arrowRtPoint.x) / 2;
end.y = (arrowlftPoint.y + arrowRtPoint.y) / 2;

pDC->MoveTo(m_start);
pDC->LineTo(end);

pDC->MoveTo(m_end);
pDC->LineTo(arrowlftPoint);

pDC->MoveTo(m_end);
pDC->LineTo(arrowRtPoint);

pDC->MoveTo(arrowlftPoint);
pDC->LineTo(arrowRtPoint);
}

mfc 画线===============http://www.2cto.com/kf/201408/324222.html=============

字体:http://blog.sina.com.cn/s/blog_6111ce890100rqse.html

BOOL   CreateFont(    int   nHeight,                       //字体的高度int   nWidth,                         //字体的宽度int   nEscapement,               //字体显示的角度int   nOrientation,             //字体的角度int   nWeight,                       //字体的磅数
BYTE   bItalic,                     //斜体字体
BYTE   bUnderline,               //带下划线的字体
BYTE   cStrikeOut,               //带删除线的字体
BYTE   nCharSet,                   //所需的字符集
BYTE   nOutPrecision,         //输出的精度
BYTE   nClipPrecision,       //裁减的精度
BYTE   nQuality,                   //逻辑字体与输出设备的实际//字体之间的精度
BYTE   nPitchAndFamily,     //字体间距和字体集
LPCTSTR   lpszFacename       //字体名称
);  

转载于:https://www.cnblogs.com/Decmber/p/4951871.html

MFC画带箭头的直线相关推荐

  1. 【MFC】如何画带箭头的直线

    [MFC]如何画带箭头的直线 前言 代码 获得箭头坐标 前言 如何绘制带箭头的直线,说来也简单,只需要算出箭头左右两边的坐标,再使用LineTo()函数即可.话不多说上代码. 代码 获得箭头坐标 已知 ...

  2. CAD里面怎么画带箭头的直线

    转自:http://jingyan.baidu.com/article/9113f81b0192e72b3214c709.html?st=2&os=0&bd_page_type=1&a ...

  3. 关于google地图api3的离线和在线开发(画带箭头的直线,指定范围,搜索,计算距离)

    最近因为开发的需要,要做一个离线的google地图.并且能够加载google地图的一些特效.例如:地图的标记,计算距离,获取标记的经纬度,画带有箭头的直线,获取指定范围的数据等等.在这里我总结了很多开 ...

  4. 关于利用canvas画带箭头的直线旋转

    利用canvas在Vue项目中使用: <imgid="range_right"src=""style="position: absolute;l ...

  5. delphi 画 带箭头的线

    unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Di ...

  6. html5画直线箭头,HTML5 canvas画带箭头的虚线

    今天给大家讲解的是在HTML5 canvas画带箭头的虚线.关于Canvas 对象表示一个 HTML 画布元素 -.它没有自己的行为,但是定义了一个 API 支持脚本化客户端绘图操作. 本案例注意事项 ...

  7. Android Canvas绘制带箭头的直线

    先看下效果图: 下面我们直接看代码 我自定义了一个View,代码如下: package com.davis.drawtrangle;import android.content.Context; im ...

  8. Raphael绘制流程图(二),添加带箭头的直线

    上一篇文章中,我们添加了元素(矩形框),接下来给矩形框加上带箭头的直线,代码如下: var wf_r = null; //画板对象 var wf_steps = []; //步骤数组 var wf_w ...

  9. Matlab任意两点之间绘制带箭头的直线

    Matlab任意两点之间绘制带箭头的直线 简单绘制任意两点之间.本来不想自己写的,可是网上的代码用起来不舒服,所以简单看看原理,原来就是个坐标变换而已.索性自己写了一份,分享如下: function ...

最新文章

  1. 此主机支持 Intel VT-x,但 Intel VT-x 处于禁用状态
  2. ajax传递对象数组
  3. java 加法表编程_java编程——数据的加法
  4. fragment中的replace和hide与shou方法的区别
  5. 关于浏览器模式和文本模式的困惑
  6. 教你怎样做好计划 将愿望慢慢实现
  7. 2020 年,开启现代库的基建学习 —— 从项目演进看前端工程化发展
  8. Windows 10版本business_editions和consumer_editions的区别?
  9. 年末优质蓝牙耳机盘点:十款商城热销高人气无线蓝牙耳机测评
  10. 系统备份恢复 Acronis True Image使用教程
  11. 隐马尔可夫模型HMM (机器学习模型)
  12. php手册经常见到,什么是“二进制安全”?
  13. Docker入门到实践 (一) docker简介与安装、常用命令讲解
  14. 【学习笔记】产品经理必备技能之数据分析(二)常见数据分析方法(上)
  15. abs int 宏定义_【C语言】15-预处理指令1-宏定义
  16. 记free 多次引发的内存踩踏事件
  17. 为什么说指针是 C 语言的精髓?
  18. 实现手机安装根证书(系统证书)和使用drony 解决普通代理部分应用不能抓包的问题
  19. 消防自动喷水灭火系统(二)
  20. 岩土工程渗流问题之有限单元法:理论、模块化编程实现、开源程序手把手实操技术

热门文章

  1. 【Python数学建模】SEIR传染病模型模型延伸-SEIDR模型(一),加入疫苗接种、政府管控、病毒变异等因素的影响
  2. 【discuzx2】forum_index.php文件的分析
  3. 老刘说NLP:这几年的NLP历程回顾,以及关于NLP(知识图谱等)落地的思考
  4. 2021NCTF-RE
  5. iOS开发 - App语言国际化
  6. 基于遗传算法的TSP问题求解(python实现)
  7. 大神见地:Jeff Dean展望AI的5大趋势!
  8. case/casez/casex 区别与综合
  9. 小新14pro锐龙版虚拟机启动蓝屏重启
  10. 论文中如何实现公式居中标号靠右?