首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

WinAPI - 如何绘制虚线?

在 Windows 平台上,使用 WinAPI 绘制虚线可以通过以下步骤实现:

  1. 创建一个矩形区域,用于绘制虚线。
  2. 创建一个自定义的笔样式,设置其为 PS_USERSTYLE,并指定虚线样式。
  3. 使用 CreatePen 函数创建一个钢笔,并将其与自定义的笔样式关联。
  4. 选择创建的钢笔到设备上下文中。
  5. 使用 MoveToEx 函数移动到虚线的起始点。
  6. 使用 LineTo 函数绘制虚线。
  7. 删除创建的钢笔。

以下是一个简单的示例代码:

代码语言:c++
复制
#include<Windows.h>

int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow)
{
    HWND hWnd = CreateWindowEx(WS_EX_CLIENTEDGE, L"EDIT", L"", WS_CHILD | WS_VISIBLE, 0, 0, 300, 200, hWnd, NULL, hInstance, NULL);

    HDC hDC = GetDC(hWnd);

    // 创建自定义笔样式
    LOGBRUSH lb = { BS_SOLID, RGB(0, 0, 0), 0 };
    HPEN hPen = ExtCreatePen(PS_COSMETIC | PS_USERSTYLE, 1, &lb, 2, &dash);

    // 选择钢笔到设备上下文中
    HPEN hOldPen = (HPEN)SelectObject(hDC, hPen);

    // 绘制虚线
    MoveToEx(hDC, 10, 10, NULL);
    LineTo(hDC, 200, 10);

    // 恢复原始钢笔
    SelectObject(hDC, hOldPen);

    // 删除创建的钢笔
    DeleteObject(hPen);

    ReleaseDC(hWnd, hDC);

    return 0;
}

在这个示例中,我们创建了一个矩形区域,并使用自定义的笔样式绘制了一条虚线。注意,这个示例仅仅是一个简单的演示,实际应用中可能需要更多的逻辑和错误处理。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

android绘制虚线

有的时候我们需要一种虚线效果,比如图片的边框,愤怒的小鸟的飞翔路径,那么怎么绘制这些虚线呢?方法很多,目前我觉得好的有两种: 一、自己创建模式,一个点一个点的绘制。...二、用Android提供的 DashPathEffect 类来创建模式绘制。 下面我要演示的就是第二种方法,用Android提供给我的API来绘制。...newPts,mLinePaint); } } 下面是关于这个DashPathEffect 的一些说明,摘录的: DashPathEffect是PathEffect类的一个子类,可以使paint画出类似虚线的样子...如本代码中,绘制长度1的实线,再绘制长度2的空白,再绘制长度4的实线,再绘制长度8的空白,依次重复.1是偏移量,可以不用理会....DashPathEffect 可以使用DashPathEffect来创建一个虚线的轮廓(短横线/小圆点),而不是使用实线。你还可以指定任意的虚/实线段的重复模式。

2.2K60

canvas学习总结四:绘制虚线

)等方法,当然 Canvas 2D API 也提供了虚线绘制方法,CanvasRenderingContext2D.setLineDash(); 下面我们就来看看虚线绘制方法 语法 ctx.setLineDash...有上图几个例子我们可以看出,setLineDash()方法是根据参数中的元素在 “线段与间隔” 之间形成组,然后进行循环,进而绘制虚线。...我们不仅可以利用 canvas API 绘制虚线,我们还可以扩展一个自己绘制虚线的方法。...总结: 我们可以通过setLineDash()方法绘制虚线,该方法会以参数的元素个数为 组 的形式去进行 循环 绘制,但是要注意传入方法是参数的元素个数。...我们还可以自定义扩展绘制虚线的方法,主要就是获取起点进而计算线段数进行循环绘制 对canvas绘制图形感兴趣的同学,请持续关注后续更新,如有不对的地方也请指出并多多交流。

1.2K20

QT使用QML实现地图绘制虚线

QML提供了MapPolyline用于在地图上绘制线段,该线段是实线,因此我使用Canvas自定义绘制的方式在地图上绘制线段,如图: 鼠标在地图上点击后,在点击位置添加图标 ,当有多个图标被添加到地图上后...,计算各个图标间的距离,并创建一个新的虚线线段组件,连接两个图标点,显示距离数值。...如果对自定义图标添加拖动属性,效果如图: MapDashLine.qml属性: beginCoordinate:线段起始经纬度坐标 endCoordinate:线段终点经纬度坐标 lineDash:虚线样式...lineColor:虚线颜色 lineWidth:虚线粗细 textColor:显示距离文字颜色 textPixelSize:字体大小 MapDashLine.qml源码(...ctx.lineWidth = mapDashLine.lineWidth ctx.setLineDash(mapDashLine.lineDash) //**绘制虚线

33540

html语言怎么在虚线中加字,html下划线虚线 高分。。html语言如何在文字下面插入一条虚线。…

在HTML中边框的下划线用虚线怎么表示出来呀? css里怎么使得文字的下划线是虚线啊? 我想做个CSS想让文字的下划线是虚线,请问怎么实现啊?...CSS下划线是虚线怎么表示CSS下划线是虚线怎么表示 高分。。html语言如何在文字下面插入一条虚线。 HTML高手帮我写一段关于带下划虚线的简单代码~谢了看图,红线为虚线。。。...就是在一行字下面,比如,一行字只有两个字,但 .red-underspanne{ border-bottom:dashed 1px red; display:block; } 有虚线吧?...看来你是基本的HTML知 在html中我要打出一条虚线怎么写 style=”border-top:1px silver dashed;” dashed(带表虚线) #000颜色 1px带表粗细 CSS中怎样让连接的下划线变成虚线

2.8K50

【100个 Unity踩坑小知识点】| 在编辑器中绘制正方体虚线、球体虚线(Gizmos 辅助线框)

Unity 踩坑小知识点学习 在编辑器中绘制正方体虚线、球体虚线(Gizmos 辅助线框) 使用Gizmos类可以让我们在Unity中实现一种辅助线框,下面举例几种常用的线框。...更多的API可以来 官方手册关于Gizmos查看 使用Gizmos绘制线框要在下面两个函数中使用: private void OnDrawGizmos() { Debug.Log("持续调用" )...注意:正常情况下只能在Scene中看到线框,在Game视图中要开启Gizmos才可以看到线框 正方体和球体虚线框如下: private void OnDrawGizmos()...= Color.green;//改变线框的颜色 Gizmos.DrawWireCube(transform.position, new Vector3(3, 3, 3));//正方体虚线框...Gizmos.DrawWireSphere(transform.position, 5f);//球体虚线框 } 正方体和球体线框如下: private void

54330

如何绘制省市级地图?

,但是关于省市级地图绘制非常少,本推文就是来解决这个问题。...下面推文主要以浙江省、温州市为例,使用 leaflet 包绘制省/市级地图。 绘制省级地图 首先,使用 regionNames()导入浙江省各市的名字。...绘制市级地图 绘制市级地图与绘制省级地图类似,只需在regionNames()中进行变化即可,其他几乎相同。下面绘制的温州市地图做了一些小小的拓展。1. 使用真实案例数据;2. 填充颜色变化。...labFormat = leaflet::labelFormat(prefix = ""), opacity = 2) 小编有话说 本推文主要介绍,如何使用...如何凸显各市/县的名字到填充颜色上方?2. 有些市、县发生变化(从县变为区),但 leaflet 包没有及时更新,应该如何处理? 以上是小编在实际科研中存在的问题,我的“笨”办法是:画图细节不会改?

2.5K20

如何使用 Excel 绘制甘特图?

这部分我会通过一个实战案例,教会你如何使用Excel来绘制甘特图,从而来管理项目,并自动生成项目进度报表。 我们可以根据项目需求用Excel做下面的项目管理文档。...下面我教你如何用Excel做出这样的项目管理文档。 4.如何用Excel做甘特图? 1)如何制作项目计划表? 在Excel中录入项目分解也就是各个任务的名称,负责人,开始时间,需要天数这些数据。...2)甘特图如何制作?...3)管理文档的第3部分项目分析如何做? 预计总天数,已完成天数,未完成天数,对之前的计划表列做加法就可以得到。 然后插入饼状图就可以得到项目完成进度。...5.模板下载 前面我们学习了面对复杂问题,如何使用Excel制作甘特图和自动报表来推进项目进度。 我希望你也能亲自跟着前面的步骤实践一遍。 怎样用 Excel 做数据分析?​

4K30

Python 如何实时绘制数据

不同于网上其他文章或代码讲解,今天我们集中只关注实时绘制数据功能的实现。为了更精准学习该 pyqtgraph 模块功能,我们将参考官方给出的实例来边学边练。...今天我们主要关注实时绘制数据,找到左侧目录中的 "Scrolling plots",单击右侧可以看到源码 ? 双击或者点击下方的 "Run Example" 便可展示运行效果: ? 特定截图: ?...实时绘制学习 结合着实例代码和演示效果,我们可以看到有如下不同实时展示模式: 模式1: 从 0 开始固定 x 轴数值范围,数据在该范围内向左移动展示 模式2: 数据带着 x 轴坐标一起向左移动展示 模式...实例 1 中绘制图的写法比较少见,通常应用是通过 pyqtgraph.PlotWidget.plot() 来实现在控件中作图再添加到 GUI 控件中,所以我们将采用 PlotWidget 的写法来实现模式...小结 今天先只简单整理这两个较简单的实时绘制模式,给定的代码中数据是用的随机正态分布数据,我们结合着模式 1 和 2 的实例代码来分析其原理算法来仿写了常用版本的代码。

3.3K21

【Windows编程】系列第五篇:GDI图形绘制

上两篇我们学习了文本字符输出以及Unicode编写程序,知道如何用常见Win32输出文本字符串,这一篇我们来学习Windows编程中另一个非常重要的部分GDI图形绘图。...风格可以是实线、虚线、点虚线等,具体参考MSDN说明的各种类型。...我们也可以在绘制封闭图形之前创建画刷,如果把创建的画刷选入设备环境中,系统将用画刷填充内部区。...绘制模式:比如划线是可以设置实线、虚线等,填充时可能有不同的填充绘制模式。 下面我们通过一个完整的实例,来演示上面这些常见函数的具体运用以及实际使用效果。...szAppName[] = TEXT("GDI Test"); static LRESULT CALLBACK WndProc (HWND, UINT, WPARAM, LPARAM); int WINAPI

3.3K80

ROC曲线绘制原理及如何用SPSS绘制ROC曲线

但是ROC曲线绘制的原理是什么,或者说如何一步步画出ROC曲线,以及如何用SPSS软件快速绘制出ROC曲线呢?对于很多新手朋友来说,对上述问题并不十分清楚。...ROC曲线的绘制原理 ROC曲线是如何绘制出来的呢?在此之前,我们先学习几个基本的概念。...ROC曲线其实就是以FPR为横坐标,TPR为纵坐标绘制出来的曲线。 下面以一个具体的例子来详细了解ROC曲线是如何绘制的。...如何用SPSS绘制ROC曲线 当样本数据较多时,这样手算TPR和FPR比较麻烦,那么如何利用SPSS绘制ROC曲线呢?接下来,笔者通过实例操作教大家学会用SPSS绘制ROC曲线。...总结 本文主要对ROC曲线绘制的原理以及如何用SPSS软件快速绘制出ROC曲线进行了详细的阐述,希望对大家的研究有所帮助。

4K11

小白如何快速绘制原型图

说到绘制产品原型图的工具,大家一定首先先到的是大名鼎鼎的“Axure RP”,或者在线协同的“墨刀”。...简单来说,Balsamiq Mockups是一个用来绘制低保证的产品原型草图的工具。...当我们产品的业务流程和数据流转还没明确时,大家在考虑产品架构时,快速的绘制草图有助于明确成员对业务产品的用途,以及同步大家的预期。...绘制出我的第一个草图 当我们在绘制一个产品的原型图时,我们首先应当在脑海中梳理出产品的大致业务功能和数据流转,并将他们抽象成具体的功能模块。...确认好应用布局后, 我们就可以着手开始绘制一些产品的基本功能。比如这里我们就可以用Rectangle来绘制顶部侧边栏,和用Accordion来设计侧边的导航栏。 ?

1.5K20

如何试用 R 语言绘制散点图

R语言绘制基因表达基因的“对称散点图 转录组分析中,计算了两组间差异表达的基因后,通常怎样表示?您可能第一时间想到可以使用火山图。...我们使用ggplot2的方法绘制差异基因散点图。...图中的虚线代表了|log2FC|=1时的阈值线。 在该图中,我们可以很轻松地观察差异基因整体分布状态和数量比较的信息。 4 绘制差异基因散点图,颜色表示p值 上图中没有将p值信息展示出。...同样使用ggplot2的方法绘制,和上述过程相比仅在颜色指定上存在区别。...linetype = 'dashed', size = 0.5) 类似上图,两个坐标轴分别代表了处理组(treat)和对照组(control),图中的点代表各基因在两组中的平均表达值(已经作了log转换),图中的虚线代表了

1.3K20
领券