c++ - WTL 和 CContainedWindow 导致访问冲突

标签 c++ atl wtl

我正在尝试使用以下代码对对话框中的进度控件进行子类化:

ATL::CContainedWindowT<WTL::CProgressBarCtrl> progress;
// ...
progress.SubclassWindow(GetDlgItem(IDC_PROGRESS));

一切都很好。现在,如果我尝试这样做:

progress.SetRange(0, 100);

我在一个简单的 WTL 的 SetRange() 实现中的 SendMessage 上遇到访问冲突异常。我一直在上下搜索,我所能找到的只是这可能是Applications Using Older ATL Components May Experience Conflicts With DEP中提到的一些“thunking”问题。这实际上并不适用于我,因为我正在使用最新的 ATL 和 WTL(Visual Studio 2010 和 WTL 8.1 )。即使我使用 WTL 8.0,我也会遇到同样的问题。

子类化已完成,因为 HWND 有效。有什么想法吗?

最佳答案

WTL::CProgressBarCtrl m_Progress; <~ 使用它来附加进度条,而不是 CContainedWindow。

关于c++ - WTL 和 CContainedWindow 导致访问冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10626499/

相关文章:

c++ - 添加新项目时,在 wtl 中滚动 clistviewctrl

c++ - 使用 unordered_set_of 和自定义类型 boost bimap

c++ - 在数组中添加元素不会接受相似的元素

c++ - 在关闭 Qt 4.5 应用程序时,Visual Studio 报告它已检测到内存泄漏

c++ - 混合 openMP/MPI 代码中多线程发送/接收错误

c++ - 当 CComCriticalSection::Lock 可能返回 E_FAIL

c++ - ATL 简单对象向导 - "Object Xxx already exists"错误

c++ - 如何知道 CThreadPool 的工作何时完成?

c++ - 使用系统设置图标

c++ - 使用 CSplitterWindowImpl 处理移动并使子 Pane 无效