0

実行中のすべてのウィンドウは System.Windows.Forms.Form を使用していますか?

タイトルはそれを言います。Java から C++、Visual Basic、コンソール アプリまで。コンパイルされたすべてのウィンドウはクラスSystem.Drawing.Forms.Formを使用しますか?

4

2 に答える 2

1

いいえ。

.NET では、System.Windows.Forms は (本質的に) ウィンドウを描画するための単なるツールですが、唯一のツールではありません。他の言語には独自のツールがあります。Java には Swing ライブラリがあり、Python と Perl には他にもいくつかの GUI ツールキットがあり、それぞれ異なる動作をします。コンソール アプリは、まったく異なる方法で情報を表示します。どのように描画されるかは、言語だけでなく、使用する GUI API にも依存します。たとえば、ウィンドウは、C++ と DirectX およびカスタム描画ルーチンを使用して完全に描画される場合があります。これらは .NET をまったく使用せず、.NET が使用する基本的なツールも使用しません。同じウィンドウが C++ と Open GL で描画される場合があります。同じデータが表示される可能性がありますが、それを描画するために呼び出されるルーチンは異なります。実際、あなたが本当にマゾだったら、すべての図面をアセンブリで行うことができます。

于 2013-01-08T00:44:19.957 に答える
0

簡単な回答いいえ。System.Windows.Forms.Formは、OSによって提供される実際のWindowsと対話するためにWinForms.Netライブラリによって使用される抽象化です。

他の言語には他の抽象化があります。Javaは、Swing、AWT、またはフォームを描画するためのさまざまな方法を提供する他のUIライブラリを使用できます。

同様に、C ++は、OSが提供するオブジェクト(つまり、MFCライブラリ)を抽象化するか、WindowsAPIを直接使用することができます。

すべてのUIライブラリは、最終的にWindows APIを使用してウィンドウを描画する必要がありますが、すべてが同じ程度に描画するわけではないため、.NetのUIライブラリは、JavaまたはC++のUIライブラリと同じAPI呼び出しの一部を使用します。

UIとUIライブラリがWindowsでどのように機能するかについての適切な説明が見つかったら、この回答を更新します。

少し前にWindows8の歴史と変更点のいくつかを読んだことを覚えていますが、どこにあるかは覚えていません。

于 2013-01-08T00:46:05.697 に答える