私は ac#Project に取り組んでいます。
知りたい: C# .Net の hWnd、tWindowPlacement、TAboutBox を含む名前空間はどれですか?
あなたは .NET や、おそらく UI ライブラリも初めてだと思いますか? .NET での UI の実行は、古い Windows C 'Win32' API とは異なります。
Jon が述べたように、.NET とその UI ライブラリはこれらの項目を使用しません。ウィンドウへのハンドル (つまり HWND) の代わりに、インスタンス化して使用できるユーザー インターフェイスを担当するクラスがあります。たとえば、従来の .NET では、ほとんどのウィンドウは System.Windows.Forms 名前空間の UI 要素に置き換えられています。ダイアログを表示するには、フォームを作成し、最終的にフォームで .Show() を呼び出して表示します。コードは最終的に、フォームのオブジェクト指向インスタンスを指す変数を保持します。そのフォームの HWND を返すコードはありません。Win32 と比較して、UI のコーディング方法としては本当に優れています。
私のお気に入りの Windows Presentation Foundation (WPF) など、.NET がアクセスできる UI を表示するためのライブラリは他にもあります。Silverlight もそうですが、Silverlight については詳しく知りません。
.NET 全般について学習する場合は、ここで多くの質問をして、書籍も入手することをお勧めします。Jeffrey Richter による「C# 経由の CLR」という最初の本をお勧めします。もちろん、他の人も優れた提案をするかもしれませんが、その本は私が何年も前に読んだものです。もちろん、頻繁にここに戻って質問し、答えを探してください。
.NET の学習への道のりを頑張ってください!
C# でウィンドウ ハンドル (hWnd) を取得するには、次のようMainWindowHandle
に a のを返すだけです。Process
public static IntPtr FindWindowByProcessId(int dwProcessId)
{
Process proc = Process.GetProcessById(dwProcessId);
return proc.MainWindowHandle;
}
GetWindowPlacement
プラットフォーム呼び出しを使用してアクセスできます。
[DllImport("user32.dll", SetLastError = true)]
[return: MarshalAs(UnmanagedType.Bool)]
internal static extern bool GetWindowPlacement(IntPtr hWnd, out WINDOWPLACEMENT lpwndpl);
そして、TAboutBox は単なるダイアログであるかMessageBox
、C# であると思います。
hWnd の場合、System.IntPtr
構造体 (その他) を使用できます。TAboutBox は、Delphi または C++Builder クラスのように聞こえます...