我想在 .NET 应用程序中调用在 GDI+ 中找不到的 GDI 方法。
特别是这个方法,它获取指定字体的字距调整对。我想在当前不支持的 HTML5 画布上实现字距调整(字母间距),我认为最好的方法是在我的服务器上拉出字距调整对并将字距调整表返回给客户端。
您如何从 .NET 使用像这样的 Windows 库函数?
你可以找到这个方法Windows API
来调用这个方法:
System.Runtime.InteropServices
为您的项目添加命名空间2:将API
类添加到你的项目中并让它使用GetKerningPairs
方法请记住,这个函数使用了一个名为KERNINGPAIR
我们需要确保它在我们的类中定义的结构,否则我们会得到编译错误!
class API
{
[DllImport("gdi32.dll")]
static extern uint GetKerningPairs(IntPtr hdc, uint nNumPairs,
[Out] KERNINGPAIR[] lpkrnpair);
[StructLayout(LayoutKind.Sequential)]
struct KERNINGPAIR
{
public ushort wFirst; // might be better off defined as char
public ushort wSecond; // might be better off defined as char
public int iKernAmount;
public KERNINGPAIR(ushort wFirst, ushort wSecond, int iKernAmount)
{
this.wFirst = wFirst;
this.wSecond = wSecond;
this.iKernAmount = iKernAmount;
}
public override string ToString()
{
return (String.Format("{{First={0}, Second={1}, Amount={2}}}", wFirst, wSecond, iKernAmount));
}
}
}
API
现在您可以通过类调用此方法