我正在尝试将 WinCE 5.0 应用程序从 Microsoft eMbedded Visual C++ 传输到 Visual Studio 2008。我在 VS2008 中为我的 SDK 平台创建了一个对话框应用程序。到目前为止,大多数事情都可以进行微小的更改。但我仍然有一个问题: “旧”应用程序使用
MainDialog.cpp:
hListBox = GetDlgItem(hDlg, IDC_LISTBOX);
获取列表框的句柄,其中应显示流驱动程序的数据。 ListBox 句柄在头文件中全局声明:
App.h:
HWND hListBox;
在另一个 C++ 文件中,此句柄用于通过 SendMessage() 在自己的线程中将数据写入该列表框:
App.cpp:
SendMessage(hListBox, ...);
这很好用,但在 VisualStudio 2008 中,函数 CWND::GetDlgItem() 和 CWND::SendMessage() 现在完全不同了。在 VS 2008 中处理这个问题的好方法是什么?
问候
最佳答案
如果您使用 MFC 的 CWND::xyz
,则句柄是 CWND 派生类的成员变量,不会被指定。在您的示例中,您似乎需要这些函数的基本 Win32 API 版本。尝试指定默认命名空间。
例如:
::GetDlgItem(hDlg, IDC_LISTBOX);
和
::SendMessage(hListBox, ...);
关于c++ - VS2008 嵌入式应用程序 GetDlgItem(),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20212701/