0
我正在尝试使用Windows Magnification API在.net中创建放大镜应用程序。除了实际设置放大级别(默认设置为100%)之外,我几乎可以完成所有工作。问题是,我在网上的任何地方都找不到任何示例,API的所有文档都是C++代码。这是我遇到的特殊功能。Windows放大API,.NET和矩阵
bool SetMagFactor(float magfactor)
{
MAGTRANSFORM matrix;
memset(&matrix, 0, sizeof(matrix));
matrix.v[0][0] = magfactor;
matrix.v[1][1] = magfactor;
matrix.v[2][2] = 1.0f;
return MagSetWindowTransform(hwndMag, &matrix);
}
的MAGTRANSFORM结构的定义如下:
typedef struct tagMAGTRANSFORM {
float v[3] [3];
} MAGTRANSFORM, *PMAGTRANSFORM;
这方面最令人困惑的部分是memset的 - 我不知道它做什么或等值是在.NET什么,但还有令人困惑的是多维数组/矩阵,以及我如何在.NET中处理这个问题。
任何帮助将不胜感激。
不幸的是,当我将结构传递给MagSetWindowTransform函数时失败。我得到一个奇怪的异常 - “System.ExecutionEngineException异常抛出”,如果我尝试和军事它作为LayoutKind.Auto和“指定的记录不能映射到托管值类”。 – 2009-09-15 11:56:41
LayoutKind.Explicit? – 2009-09-15 14:23:19
与指定无布局相同 - 抛出System.ExecutionEngineException – 2009-09-16 14:24:45