我們試圖將使用CWnd.SubclassWindow方法編寫的MFC中的一段C++代碼轉換爲Borland C++ Builder代碼。有誰知道如何進行子類化(帶有TForm對象的子類) - 我們完全被卡住了。任何指針將非常感謝! TIA!Borland C++ Builder中的Windows子類化
具體細節:
我們有寫入的Borland C++從TForm的繼承,這是用來給所有形式,從它繼承特定的外觀和感覺(它處理WM_NCPAINT和WM_NCHITTESTheavily,例如現有的基類)。
現在我們希望使用此代碼爲其他語言(MSVC++/MFC和C#)寫的表單提供相同的外觀和感覺。
而不是重寫所有代碼,我們認爲使用Windows子類化將是一個好主意。然後,我們可以將所有現有的和經過測試的代碼填充到一個DLL中,然後使用hWnd調用它,並且該窗口將自動獲得新的外觀和感覺。
究竟爲什麼這是如此不可能真的不合格,我不想說 - 我自己沒有用Borland C++編碼。我在幾分鐘內在MFC中寫了一個存根,向Borland C++開發人員展示了我想要的東西,他們花了好幾天的時間嘗試模仿MFC CWnd :: SubclassWindow方法,但沒有成功。
從我的理解,問題是,當你做一個「新的TForm()」,然後一個新的窗口被自動創建之前,你有任何機會來阻止它。因此,取代然後WindowProc 工程但一個不需要的TForm窗口在屏幕上浮動,無用!
你真的意味着Borland必須在10年前停止銷售和支持的OWL嗎? – mghie 2009-02-09 11:30:21
嗯,我認爲這是所謂的...我只是一個M $的傢伙,我試圖找出爲什麼這些Borland C++開發人員無法模仿我能用MFC中的一行代碼做什麼。 – 2009-02-10 16:20:58