Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# .NET PointToClient函数是如何实现的?_C#_.net - Fatal编程技术网

C# .NET PointToClient函数是如何实现的?

C# .NET PointToClient函数是如何实现的?,c#,.net,C#,.net,我的游戏要求我每帧调用PointToClient,虽然这目前可能不会造成任何瓶颈,但我想看看源代码,看看是否可以提高函数的性能。我知道大多数.NET函数都有很多可以重构的膨胀,我在过去已经使用了几个.NET函数。我查看了,发现PointToClient调用NativeWindow.PointToClient,后者反过来调用本机函数MapWindowPoints 我的问题是:如何查看本机源代码?如果这样一个存储库不可用,那么该函数通常如何实现呢?本机方法可能比使用C#更快地实现它。如果您确实需要速

我的游戏要求我每帧调用PointToClient,虽然这目前可能不会造成任何瓶颈,但我想看看源代码,看看是否可以提高函数的性能。我知道大多数.NET函数都有很多可以重构的膨胀,我在过去已经使用了几个.NET函数。我查看了,发现PointToClient调用NativeWindow.PointToClient,后者反过来调用本机函数MapWindowPoints


我的问题是:如何查看本机源代码?如果这样一个存储库不可用,那么该函数通常如何实现呢?

本机方法可能比使用C#更快地实现它。如果您确实需要速度,请使用DirectX或一些游戏API

撇开这一点不谈,为了获得屏幕坐标中给定的点相对于控件的本地坐标(客户端坐标),必须减去该控件的屏幕坐标。为了获得屏幕坐标,请按照父级的链向上添加本地坐标到窗体


自己动手真的是不值得的。

本机方法的速度可能比使用C#更快。如果您确实需要速度,请使用DirectX或一些游戏API

撇开这一点不谈,为了获得屏幕坐标中给定的点相对于控件的本地坐标(客户端坐标),必须减去该控件的屏幕坐标。为了获得屏幕坐标,请按照父级的链向上添加本地坐标到窗体


自己动手真的不值得。如果这个问题有问题,我希望有人能解释一下,这样我就可以尝试解决。您可能想先分析一下性能,看看是否有必要进行任何优化。这是一种令人难以置信的简单实现方法,在其他应用程序中也经常使用,所以不太可能有任何需要改进的地方。上次我检查时,Windows不是开源的。您希望Windows的源代码在何处可用?如果问题有问题,我希望有人能解释一下,这样我就可以尝试修复它。您可能希望首先分析性能,以确定是否需要进行任何优化。这是一种令人难以置信的简单实现方法,在其他应用程序中也经常使用,所以不太可能有任何需要改进的地方。上次我检查时,Windows不是开源的。您希望Windows的源代码在哪里提供?