Je suis en train de créer une application agrandisseur dans .net à l'aide de l'API Windows Grossissement. J'ai à peu près tout fonctionné sauf pour réellement régler le niveau d'agrandissement (qui est de 100% par défaut). Le problème est, je ne peux trouver aucun exemple n'importe où sur le net et toute la documentation pour l'API est le code C++. C'est la fonction particulière avec laquelle j'ai des problèmes.Windows Grossissement API, .NET et matrices
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);
}
La structure MAGTRANSFORM est définie comme suit:
typedef struct tagMAGTRANSFORM {
float v[3] [3];
} MAGTRANSFORM, *PMAGTRANSFORM;
La partie la plus déroutante de c'est le memset - Je ne sais pas ce qu'il fait ou ce que son équivalent est en .NET, mais Ce qui est aussi source de confusion, c'est le tableau/matrice multi-demensional et comment je gérerais cela dans .NET aussi.
Toute aide serait grandement appréciée.
Malheureusement, il échoue lorsque je passe la structure à la fonction MagSetWindowTransform. Je reçois une exception bizarre - "System.ExecutionEngineException thrown" si j'essaie de le martialiser comme LayoutKind.Auto et "L'enregistrement spécifié ne peut pas être mappé à une classe de valeur gérée". –
LayoutKind.Explicit? –
Identique à la définition de l'absence de disposition - System.ExecutionEngineException généré –