问题标签 [wtl]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
2263 浏览

c++ - WM_SETFOCUS,获取刚刚失去焦点的应用

当我的 WTL C++ 应用程序被激活或获得键盘焦点时,我需要确定之前激活/获得焦点的应用程序的窗口句柄。WM_SETFOCUS但是,消息和消息的窗口句柄 (LPARAM)WM_ACTIVATE都是NULL(XP,32 位)。

当我的应用程序被激活时,如何确定刚刚失去焦点的应用程序?有没有一种简单的方法可以做到这一点,或者我需要滚动一个特殊的 CBT 钩子吗?

0 投票
2 回答
1398 浏览

c++ - WTL强制资源从非mfc应用程序中的dll加载的方式?(我们使用的是 WTL/ATL,不是直接的 win32)

我之前发布了这个问题,现在加载了本地化字符串(我们使用 LoadString() 获得的字符串),但我还需要从附属 DLL 加载所有其他资源。

MFC 有 AfxSetResourceHandle () 调用,但我需要非 mfc 应用程序等效的东西吗?我怀疑我必须在某个地方的初始化代码中设置它,以便我的所有资源都从另一个 DLL 加载。我如何在 WTL(Windows 模板库)上下文中做到这一点?

编辑:

这总结了我们的问题

我们不是直接使用win32,而是使用ATL和WTL来处理windows的东西。所以我们不能依赖 MFC 的东西,也不能对菜单和对话框资源的加载进行低级控制。

编辑:嗯...... 这似乎有一个答案,但我希望有比这更好的东西。例如 - 与 CAppModule 对象中的 GetResourceInstance() 类似的 SetResourceInstance() 方法。

0 投票
1 回答
406 浏览

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

添加新项目时,我想滚动到列表视图的末尾。我正在使用来自 WTL 的 CListViewCtrl。这是我添加新项目和滚动的功能:

n只是一个全局变量:

该功能有效,除了根本不滚动。

我查看了Scrollin wtl 的源代码,它看起来不错:

那么为什么不滚动呢?我试过n+1了,等等...

0 投票
2 回答
1026 浏览

c++ - 未收到 TVN_SELCHANGING

我有一个 WTL81 应用程序。CMainFrame 有一个子 CPaneContainer,它有一个子窗口 CTreeViewCtrl。问题是 CTreeViewCtrl 没有收到 TVN_SELCHANGING 消息。

我已经“窥探”了 CTreeViewCtrl 和他的父级(CPaneContainer),但没有收到任何通知代码。

CMainFrame 是从 public 实现的CFrameWindowImpl<CMainFrame>

CPaneContainer 是这样实现的

树是这样实现的

OnDblClick -工作正常
OnItemExpanding -工作正常
OnSelChanged - 不工作

关于可能是什么问题的任何想法?

0 投票
2 回答
1163 浏览

c++ - 被 BEGIN_MSG_MAP 和 BEGIN_MSG_MAP_EX 弄糊涂了

我正在跟踪一个错误,我怀疑根可能是在使用 WTL 宏。当我使用 *_EX 和普通宏时。对于 BEGIN_MSG_MAP_EX,atlcrack.h 中有一条注释

但是其余的或宏呢?例如,我可以在同一个 BEGIN_MSG_MAP_EX 中同时使用 COMMAND_ID_HANDLER 和 COMMAND_ID_HANDLER_EX 吗?

0 投票
1 回答
948 浏览

c++ - C++ 程序没有响应来自任务栏的平铺/级联窗口

我有一个复杂的 C++ 程序(老式 Win32 和 WTL 的混合体),它不响应任何任务栏磁贴/级联请求(即右键单击任务栏并选择“级联窗口”或“并排显示窗口”) . 当我使用 spy++ 时,我发现我的窗口都没有收到任何窗口消息,而其他程序(在本例中为 Firefox)得到一系列 WM_GETMINMAXINFO、WM_SIZE、WM_PAINT ...

我的框架窗口样式为 WS_OVERLAPPEDWINDOW。在创建框架窗口之前,我创建了几个隐藏窗口。我已经在多个不同的操作系统上进行了测试,并且症状是相同的。Windows shell 向我的框架窗口发送消息是否有任何限制或先决条件?

0 投票
2 回答
3556 浏览

c++ - 使用 VS Express 时在控制台应用程序中使用 CString

尝试使用 CString 时遇到问题。

我有一个使用 VS2010Express 编写的控制台应用程序。我有一段我想使用的代码,但它使用 CString。当我尝试包含适当的标题 atlstr.h(据我所知)时,我得到了著名的错误:无法打开源文件。在 Goggling 了一段时间之后,似乎总体上应该是可以的,但是 Express 用户无法使用 atlstr.h。问题:

1) 对吗?2)我能以某种方式避免这个问题吗?

下面是代码,(来源:http ://www.cprogramming.com/tutorial/ado_c++_wrapper_classes.html )

如果有人知道如何继续使用此代码,无论是否使用 CString,请帮帮我....

谢谢你,复活节快乐!

0 投票
2 回答
1994 浏览

c++ - 调整大小的 WTL 布局

我想知道拥有更多 WTL 知识的人会如何创建这样的东西:

一个可调整大小的对话框(-> WS_THICKFRAME),包含两个“区域”。调整大小时,一个区域在 y 方向上增长并包含一些组件,这些组件之间的高度距离应相等(例如,在区域高度的 0%、25%、50%、75% 和 100% 处)。

另一个区域在下方并具有固定的高度。调整大小时,这两个区域都应在 x 方向上增长。

这里的重要问题是:a)这两个区域使用什么容器等 b)如何处理调整大小(DLGRESIZE_CONTROL 不允许以相等的距离分隔控件,例如,afaik)

谢谢。

0 投票
2 回答
4209 浏览

c# - C# Winforms 时间轴控件(来自 WTL?)

我的一个项目(Winforms/C#)需要一个时间线控件,我真的不知道我应该如何从头开始创建一个。我对我想要什么有一些直观的想法。类似于下面的链接

http://www.codeproject.com/KB/wtl/wtltimeline.aspx

我只是想知道是否可以直接在 Winforms 项目中使用 WTL?或者如果不是,是否容易从 WTL 代码迁移到 C# 代码以在 Winforms 中使用。我不能离开 Winforms 因为我的大部分项目都是在 Winforms 中完成的。

我对此的另一个问题是在这个链接中: C# Timeline control

对项目和时间线控制的要求有更好的描述。

请帮忙。谢谢!:)

0 投票
1 回答
214 浏览

c++ - 属性表页面的处理程序抛出的异常

我想通过顶级应用程序的 try-catch 块而不是在属性表页面的处理程序(例如 OnInitDialog 处理程序)中捕获和处理异常。因此,在下面的代码中,这些异常应该在 catch (...) 块中处理。

但是,当 OnInitDialog 引发异常时,在运行 Windows 析构函数后会出现一个断言(在调试模式下)。即使我在 CMyPropertySheet 析构函数中调用 EndDialog(m_hWnd, IDCANCEL),断言仍然存在。您能否帮助检测丢失或损坏的内容?我使用 WTL。我的属性表 claa 派生自 CPropertySheetImpl。

谢谢。