c++ - VS2008 嵌入式应用程序 GetDlgItem()

标签 c++ visual-studio-2008 embedded windows-ce

我正在尝试将 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/

相关文章:

c++ - 指向对象数组的指针的初始化

c++ - Reverse String (Leetcode) 使用 C++,为什么我不能将新字符串作为方法返回

c++ - 错误 : no matching function for call to 'make_pair'

c# - ASP.NET 编译器找不到任何命名空间

visual-studio-2008 - Visual Studio 不会打开解决方案文件

C/Assembler - 在没有堆栈的单用户、单任务操作系统中返回代码

c++ - 在 (operator new(unsigned int)+22) 处崩溃

asp.net - 如何防止“发布网站”覆盖配置文件?

c - Microchip XC32 编译器,malloc 调用返回 0,写入指针抛出未实现的 RAM

c - 如何在没有竞争条件的情况下将两个 32 位计数器读取为 64 位整数