智绘教 —— 全新一代屏幕画板工具 金牌收录

智绘教——不仅仅只是一个屏幕画笔工具。是一个运行于桌面的画板的软件,可以用于教学,网上授课和非常多的场景。绝大部分 Windows 电脑和教学一体机都可以使用。无论是屏幕的书写,还是图形的绘制,都可以轻松驾驭。由 HiEasyX(EasyX 扩展库) 和 GDI+ 驱动,项目开源。

详解透明贴图和三元光栅操作 金牌收录

透明贴图,是指贴图时某些部分是完全透明的或半透明的。

本文介绍多种透明贴图的方案,包括:

  1. 指定透明色贴图(基于 Windows API 函数 TransparentBlt)
  2. 指定透明色贴图(基于直接操作显示缓冲区)
  3. 使用三元光栅操作实现透明贴图
  4. 根据 png 的 alpha 信息实现半透明贴图(基于 Windows API 函数 AlphaBlend)
  5. 根据 png 的 alpha 信息实现半透明贴图(基于直接操作显示缓冲区)

各种方法各有利弊,大家可以根据自己的需求选择。

1. 指定透明色贴图(基于 Windows API 函数 TransparentBlt)

这是最简单的透明贴图方法。

该方法要求图片素材的透明部分为纯色,因此建议使用 gif 或 png 格式的图片素材。如果使用 jpg 格式的图片素材,那么由于 jpg 的有损压缩,会造成边缘颜色有微小差异,与指定的透明色并不完全相同,从而导

...

TC 中的 bioskey() 函数在 VC 中用什么代替? 铜牌收录

bioskey() 函数需要引用头文件 bios.h,这个头文件在 VC 中默认是没有的,将其引用 #include <bios.h> 删掉即可。

功能上,bioskey 可以实现以下三个功能:

  1. bioskey(0): 返回用户按键。
    如果返回值的低 8 位非 0,该值表示按键的 ASCII 码;
    如果返回值的低 8 位为 0,该值表示按键的键码。
    作为替代,VC 中可以使用 getch() 返回用户按键。对于功能键(如光标键),getch() 需要调用两次,第一次返回 0 或 0xE0,第二次返回键码。
    详见:http://msdn.microsoft.com/en-us/library/078sfkak(v=VS.80).aspx
  2. bioskey(1): 返回是否有按键发生。
    如果没有按键,返回 0;
    如果有按键,返回该按键值。(该按键仍然保留)
    作为替代,VC 中可以使用 kbhit() 返回是否有按键发生。
...

精确延时的实现 金牌收录

使用 Windows API 函数 Sleep(),精度低,而且会忽略掉程序的执行时间,这就导致了程序执行时的帧率不够稳定。本文详细讲解如何精确延时,使程序的计时更精准、帧率更稳定、运行更流畅。

实现桌面截图 铜牌收录

本文讲解怎样截取整个桌面的图像。对于控制台程序,执行后首先会创建一个黑色的控制台窗口,然后才会启动你的程序。因此这时候抓到的图,会包括一个黑色的控制台窗口,我想,这是大多数人不希望看到的。因此,实现抓图,要建立的项目需要是 Win32 Application,而不能是平时用的 Win32 Console Application。

保留透明(Alpha)信息地旋转图像 铜牌收录

EasyX 的旋转函数 rotateimage 不支持含有透明信息的图像的旋转,在设置了背景色的情况下会丢失透明信息,故特地编写了保留透明信息的旋转函数。 在此之前也有人写过此类旋转函数,旋转效果很好,也实现了目标效果,可惜存在一些致命 Bug,否则我也不会再造轮子。此旋转函数是原创的,取前人所长,去前人所短,绝对能满足您的旋转需求,让您也不必再造轮子。