2013-11-26 62 views
1

即時通訊嘗試將Microsoft eMbedded Visual C++的WinCE 5.0應用程序傳輸到Visual Studio 2008.我在VS2008中爲我的SDK-Platform創建了一個Dialog應用程序。大多數情況下工作到目前爲止只有很小的變化但我仍然有一個問題: 「老」的應用程序使用VS2008嵌入式應用程序GetDlgItem()

MainDialog.cpp: 

hListBox = GetDlgItem(hDlg, IDC_LISTBOX); 

得到一個列表框,應顯示流驅動器的數據的句柄。列表框手柄全局聲明在頭文件:

App.h: 

HWND hListBox; 

在另一C++ - 文件此手柄用於經由SendMessage消息()的自己的線程內,以將數據寫入到該列表框:

App.cpp: 

SendMessage(hListBox, ...); 

這很好,但在VisualStudio 2008中,函數CWND :: GetDlgItem()和CWND :: SendMessage()現在完全不同了。什麼是在VS 2008中處理這個問題的好方法?

問候

+2

他們沒有什麼不同,這些成員函數只是不包括HWND參數自CWnd類已經知道了手柄。根本不太可能你應該使用CWnd類。這是一個MFC類,將您的舊應用程序轉換爲MFC將是一項主要工作。確保你不只是看錯了MSDN文章。 –

回答

0

如果你使用MFC的CWND::xyz,則該句柄是CWnd派生類的成員變量,不會被指定。在你的例子中,看起來你想要這些函數的基礎Win32 API版本。嘗試指定默認名稱空間。

例如:

::GetDlgItem(hDlg, IDC_LISTBOX); 

::SendMessage(hListBox, ...); 
+0

爲了讓OP更清楚,'指定默認命名空間'意味着'在函數調用前放置兩個冒號' –