2011-09-13 25 views
5

在VC++創建窗口時,我們需要創建一個窗口類並使用RegisterClass或RegisterClassEx進行註冊。但在.NET中,我們沒有這一步。什麼是創建.NET窗體時由Visual Studio分配的窗口類名稱?

所以我想知道在創建表單時由Visual Studio分配的默認窗口類名是什麼?

正如我已經跟蹤了,由Visual Studio分配的窗口類名是有點類似於此:
WindowsForms10.Window.8.app.0.1ca0192_r13_ad1

我想改變這種默認的窗口班級名稱,任何想法?

+1

你爲什麼要改變它? –

+1

我需要檢查某個表單是否是我的應用程序創建的表單 – jondinham

+1

這並不回答@André的問題,Paul。您無需爲了檢查它是否存在就可以對其進行更改。只需找出你應該尋找什麼類名,然後尋找它。另一方面,安德烈的問題對於回答你的問題並不重要。但請記住,有可能有更好的方法去做任何你真正需要的東西。你顯然想知道給定的窗口是否是你的應用程序創建的窗口。你應該問*,而不是窗口類。 –

回答

4

自動生成窗口類名稱。即使CreateParams允許您設置ClassName屬性,也無法更改它們。外部程序也不能正確猜測自動生成的名稱,它的一部分從AppDomain.CurrentDomain.GetHashCode()生成。

您需要另一種方法來識別窗口。沒有多少可用,但是您可以調用SetProp()將任意字符串關聯到窗口。並測試它是否與GetProp()一起出現。 SDK文章is here

+0

tks Hans,GetProp&SetProp可以做這個識別工作! :) – jondinham

相關問題