问题标签 [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.
winapi - Win32 / WTL-我的复选框图像列表状态恢复为未选中状态
我正在 WTL 中创建一个自定义窗口来保存 DirectShow 应用程序的视频控件。
我创建了一组复选框,我希望它们以“类似推送”的方式运行 (BS_PUSHLIKE)。它们出现在对话框的 .rc 文件中,如下所示:
我还为按钮加载了一个图像列表,当按钮处于 LButtonDown 和 LButtonUp 状态时,它会正确显示适当的图像:
在下面的代码中,m_btnVid1 被定义为 WTL::CBitmapButton
只要我松开鼠标按钮,复选框状态就会恢复为“未选中”状态。
我在 IDC_VID1 控件中添加了 COMMAND_ID_HANDLER_EX 来确定控件的状态,但 nState 变量始终为 0:
任何人都可以提出为什么会这样 - 我是否缺少 CBitmapButton 中的创建风格?
如果有帮助,我相信我可以以某种方式在线发布 VC2008 解决方案文件。
winapi - 为什么我的所有者绘制列表框的DrawItem方法不能调用
我尝试用 WTL 编写一个所有者绘制列表框。我的代码看起来像这样
我还添加REFLECT_NOTIFICATIONS
了父消息循环,并在属性表中将 Owner Draw 设置为 Fixed。但是我还是收不到消息。然后我用spy++查看了listbox收到的消息,发现有些消息很奇怪(WM_USER+7211
)。
我的操作系统是 WinXp 并使用 VS2008。
winapi - 最小化或还原时没有 WM_SIZE 消息
根据 MSDN,当窗口最小化或恢复时,应将 WM_SIZE 发送到窗口。但是我的应用程序窗口,即 WTL CDialogImpl 在最小化或恢复时永远不会得到 WM_SIZE。
我使用 spy++ 来检查它,我可以得到 WM_SYSCOMMAND、WM_WINDOWPOSCHANING、WM_ACTIVE、WM_ACTIVEAPP 等,但没有 WM_SIZE。
我检查了一些其他 WTL 示例应用程序,最小化或恢复时我能够获得 WM_SIZE msg。
我的问题是为什么我的 WTL CDialogImpl 窗口没有收到 WM_SIZE?除此之外,是否有任何其他消息指示还原或最小化完成?我的意思是,在系统中,大多数时候,都有动画来显示最小化/恢复过程。我需要一条消息或事件让应用知道动画在恢复时完成。
谢谢!
威廉·L。
c++ - 带有 WS_EX_COMPOSITED 的无闪烁选项卡控件
我有一个使用 WTL 8.1 开发的用于 Windows XP SP3 的 VS2008 C++ 应用程序。我的应用程序包含一个选项卡控件,该控件在调整应用程序边框大小时闪烁。
我的窗口层次结构如下所示:
我正在尝试的解决方案是让CFrameWindowImpl
派生类使用该WS_EX_COMPOSITED
样式,并且它下面的所有窗口都使用该WS_EX_TRANSPARENT
样式。不幸的是,这使得选项卡控件按钮显示为一个空的黑条,并且任何配置视图的控件根本不显示。
如果我删除WS_EX_COMPOSITED
andWS_EX_TRANSPARENT
样式,表单会正确显示,但是CTabView
在调整大小时,它下面的所有内容都会可怕地闪烁。
我需要更改什么来消除闪烁并正确绘制控件?
谢谢,保罗
编辑:让它工作。根据 Mark Ransom 的建议,我删除了所有WS_EX_TRANSPARENT
样式。我只将WS_EX_COMPOSITED
样式放在(包含在 中)。其他控件根据需要通过.CTabCtrl
CTabView
WTL::CDoubleBufferImpl<>
atl - 如何在 ATL 或 WTL 中触发菜单项单击事件?
目前我正在使用 ON_WM_SELECT messgae,但它会在鼠标悬停在菜单上时触发。
c++ - 如何使用 WTL 或 Windows SDK(无 MFC)创建 TitleAreaDialog?
我正在尝试使用 WTL 或 Windows SDK(请不要使用 MFC)创建 TitleAreaDialog。从谷歌我可以找到这两个链接:
- http://www.codeproject.com/KB/dialog/dialogheader.aspx(MFC文章)
- http://www.codeproject.com/KB/dialog/taskdialogs.aspx (怀疑..如何使用它)
所需的输出类似于 eclipse JFace TitleAreaDialog(见下图)。
请建议一种使用 sing WTL 或 Windows SDK(使用 c++)的方法。
谢谢
windows - 我应该使用 SendDlgItemMessage 还是在 WTL 中有一个包装器?
我将一个 Listbox 控件添加到名为IDC_LIST1
. 我应该使用 与此控件进行交互SendDlgItemMessage()
,还是使用 WTL 有更好的方法?这是我的事件处理程序。它还没有什么花哨的!
c++ - Windows 消息循环和 WTL
我试图了解 WTL 的工作方式,而消息循环现在让我感到困惑。
例如这个代码片段:link
首先创建窗口,然后启动消息泵。它是如何工作的?CreateEx、UpdateWindow 等不应该发送自己的不可见消息,如 WM_CREATE/WM_PAINT/WM_NCPAINT?如果消息泵未初始化,它们会被扔到哪里?如果你创建一个窗口,启动消息循环,然后关闭窗口,但又想在它的位置创建一个新窗口,会发生什么?PostQuit 退出循环,您必须创建一个新循环?
visual-studio-2010 - VC++ 2010 template typedef typename error
I am trying to migrate a project to VC++ 2010 The project contains the file TabbedMDI.h (by Danial Bowen) which gives the error "named followd by '::' must be a class or namespace name for the line "typedef typename TClient::TTabCtrl TTabCtrl;"
code snipit follows
c++ - WTL/Winapi 消息处理程序中的模态窗口
我有一个小型应用程序,它有一个仅用于后台处理的消息 WTL 窗口。但是在某些情况下,我想显示一个应该表现为模态的窗口,也就是说,只有消息窗口的消息处理程序在用户单击按钮之前不应该返回。
我在想我可以这样做(伪代码):
但是当我尝试时,窗口创建得很好,但是按一个键会在模态窗口编辑框中输出数十个字符,而不是像常规窗口中的单个字符。
很可能我做错了什么,但我不知道什么和什么应该是正确的方法。模态窗口完全是代码生成的。