- 博客(21)
- 资源 (2)
- 收藏
- 关注
原创 抗锯齿直线绘制方法(五)
直线在数学上是一个抽象的概念,它是不占空间的,但在屏幕上绘制一条直线是以像素为空间单位的,所以绘制的直线呈现锯齿状,这样绘制的直线视觉效果不理想。Windows系统提供了Gdi+函数集,使用Gdi+函数绘制直线具有抗锯齿的效果,所绘制的直线看上去有平滑感,视觉效果比较理想。本文介绍如何不使用Gdi+函数,而在Gdi中直接绘制抗锯齿直线,使视觉效果与Gdi+函数绘制的直线相同,并确保绘图速度不差于Gdi+。
2025-01-01 14:01:55
1041
原创 20241230-抗锯齿直线绘制方法(四)
直线在数学上是一个抽象的概念,它是不占空间的,但在屏幕上绘制一条直线是以像素为空间单位的,所以绘制的直线呈现锯齿状,这样绘制的直线视觉效果不理想。Windows系统提供了Gdi+函数集,使用Gdi+函数绘制直线具有抗锯齿的效果,所绘制的直线看上去有平滑感,视觉效果比较理想。本文介绍如何不使用Gdi+函数,而在Gdi中直接绘制抗锯齿直线,使视觉效果与Gdi+函数绘制的直线相同,并确保绘图速度不差于Gdi+。
2024-12-30 10:31:06
576
原创 抗锯齿直线绘制方法(三)
直线在数学上是一个抽象的概念,它是不占空间的,但在屏幕上绘制一条直线是以像素为空间单位的,所以绘制的直线呈现锯齿状,这样绘制的直线视觉效果不理想。Windows系统提供了Gdi+函数集,使用Gdi+函数绘制直线具有抗锯齿的效果,所绘制的直线看上去有平滑感,视觉效果比较理想。本文介绍如何不使用Gdi+函数,而在Gdi中直接绘制抗锯齿直线,使视觉效果与Gdi+函数绘制的直线相同,并确保绘图速度不差于Gdi+。
2024-12-28 13:31:45
658
原创 抗锯齿直线绘制方法(二)
本章节主要介绍Lh-g8和Ld-g8两类直线的绘制方法。Lh-g8类型是近似于水平或垂直的直线,Ld-g8类型是近似于对角线的直线,这两类直线占全部直线类型的26%。在直线绘制前先介绍几个基本结构和函数。
2024-12-28 09:19:06
606
原创 抗锯齿直线绘制方法(一)
直线在数学上是一个抽象的概念,它是不占空间的,但在屏幕上绘制一条直线是以像素为空间单位的,所以绘制的直线呈现锯齿状,这样绘制的直线视觉效果不理想。Windows系统提供了Gdi+函数集,使用Gdi+函数绘制直线具有抗锯齿的效果,所绘制的直线看上去有平滑感,视觉效果比较理想。本文介绍如何不使用Gdi+函数,而在Gdi中直接绘制抗锯齿直线,使视觉效果与Gdi+函数绘制的直线相同,并确保绘图速度不差于Gdi+。
2024-12-26 14:48:25
741
原创 使用Gdi实现颜色渐变充填
颜色渐变一般情况会使用Gdi+函数,或者使用Gdi中的GradientFill函数,但也可以由自己编写相应函数。本文介绍如何自己编写颜色渐变的绘图方法,并给出直线、矩形、球体的颜色渐变绘制代码,同时使用区域函数使球体具本任意角度的光照效果。
2024-09-17 12:58:06
679
原创 20240830-GradientFill函数的应用示例
在Windows API中有一个GradientFill函数,该函数为颜色渐变充填函数。一般情况下涉及颜色渐变处理时会调用Gdi+函数,但其实有些功能可以由Gdi中的GradientFill函数处理。GradientFill是一个基本函数,需要自己编写具体的充填函数,使用应用更加方便。本文介绍如何使用GradientFill函数充填三角形、矩形、柱形的方法,并利用该函数来绘制颜色渐变的水平线和垂直线。
2024-08-30 12:25:14
491
原创 Windows中增加StringCbPrintf2函数以使用资源字符串
StringCbPrintf函数(旧版本的printf、wprintf等函数)是字符串格式化函数,使用该函数可以将一组字符串和数值按指定的格式进行显示。但该函数的字符串参数不能使用资源字符串ID,这对于编写国际化软件不太友好。本文介绍如何增加一个StringCbPrintf2格式化显示函数,使格式化函数能接受资源字符串ID。
2023-08-15 12:19:26
205
1
原创 Windows菜单本地化方法
本文所介绍的内容不尽是菜单本地化,也包括窗口和控件等的本地化方法。所谓本地化,就是将程序的界面文字设置为使用者所要求的语言环境。如一个软件不需要修改源代码,而是通过本地化操作,使软件界面能显示简体中文、繁体中文、英语等某一指定的文字。
2023-08-06 10:13:58
312
原创 Windows菜单位图与菜单绘制
Windows菜单位图使用与菜单绘制的基本内容在Windows文档中有详细说明,但涉及菜单的绘制方面的介绍只是简单的一些内容。本文比较全面地介绍菜单位图的使用技巧与菜单绘制的方法。菜单绘制是窗口要素绘制中最具有挑战性的活,所涉用的内容比较多,所以本文提供全部源码。
2023-07-20 10:07:07
1211
1
原创 Windows菜单的三种创建方法
菜单是窗体上的重要构件,是人机交互的重要工具。菜单由菜单条、子菜单、菜单项三个要素构成。菜单条可以理解为"横式"菜单条,子菜单可以理解为"纵式"菜单条。因为"纵式"菜单条常挂入到其他菜单条中,这种情况称为子菜单;如果作为独立的快捷菜单使用,这种情况称为快捷菜单。创建Windows菜单有三种方法,即资源编辑、内存菜单模板和动态创建。这三种方法可以独立使用,也可以结合使用。下面分别介绍。
2023-07-05 09:00:10
3130
原创 增加LoadMenuIndirectEx函数
使用LoadMenuIndirect的API函数可以装载MENUEX_TEMPLATE_HEADER扩展菜单模板,但不能使用字符串资源,所以用途不大。如果自己编写一个装载函数LoadMenuIndirectEx,就可以使菜单模板用于多语言编程中,可以节省很多的工程量。
2022-12-09 13:28:15
257
原创 数据对齐问题引发的API调用失败
在Win32中,数据对齐并不是很严格,但在Win64中对数据对齐有严格的要求,若不符合要求,则调用API将失败。以下通过3个例子来说明一些容易忽视的问题。
2022-12-04 12:20:02
375
原创 Masm64中的VA_LIST宏的解读
我们经常要学习Windows的API函数,其中涉及到VA_LIST宏,它是C语言中处理函数可变参数的一组宏。为了学习API函数和其中的一些范例,不得不去学习一下VA_LIST宏的本质,以便在Masm64中使用相应的策略来调用API函数。
2022-11-29 11:11:35
472
原创 使用FormatMessage函数实现多语言消息
我们编写的程序常使用消息框来显示各类提示消息,如错误信息、确认信息等。在多语言编程中要求使用与地区语言相对应的字符文本。实现这种多语言的方法可能很多,本文介绍如何使用FormatMessage函数和消息文本,来实现多语言消息显示。
2022-11-24 15:40:37
1607
原创 Win64环境下CopyFile函数与LARGEADDRESSAWARE连接选项
Win64环境下COpyFile函数与LARGEADDRESSAWARE连接选项
2022-11-21 15:26:43
257
原创 基于Win64的Masm64函数设计
介绍基于Win64的Masm64函数设计模型。在Win64的API中,函数调用方法非常灵活,所以用户自己编写的函数也应该符合这种要求,特别是编写库函数,如果不符要求,则会给使用者带来很多麻烦。为了减少编程中的错误,这里介绍五种函数形式。
2022-09-11 11:14:44
496
原创 Win64 栈帧的性能和注意事项
在Win64中,API函数采用新的调用约定,也即新的栈帧平衡机制。这种栈帧带来了很大变化,它改善了函数调用的性能,并且有更多的灵活性。对于使用汇编语言的编程人员来说,必须熟知这些变化,以适应新的技术环境。
2022-08-21 10:44:40
510
汇编语言 masm64 源码调试器(初始版)。
2022-10-03
汇编语言 masm32 源码调试器
2022-06-27
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人