4

私は ac#Project に取り組んでいます。

知りたい: C# .Net の hWnd、tWindowPlacement、TAboutBox を含む名前空間はどれですか?

4

3 に答える 3

4

あなたは .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 の学習への道のりを頑張ってください!

于 2012-09-08T08:19:01.303 に答える
1

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# であると思います。

于 2012-09-08T10:16:58.517 に答える
0

hWnd の場合、System.IntPtr構造体 (その他) を使用できます。TAboutBox は、Delphi または C++Builder クラスのように聞こえます...

于 2012-09-08T08:19:55.860 に答える