问题标签 [cwnd]
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.
mfc - 在我的 MFC 应用程序中,我创建了一个新的子窗口。当我将其拖动到新位置时,在拖动过程中未绘制轮廓,因此视觉反馈
这是使用 MDI 体系结构的大型 MFC 应用程序的一部分。它是使用 Microsoft Visual Studio 2019 编写的。
我想创建一个窗口来显示文本文件的前几行,以便用户可以做出解析它的决定。新窗口不适合整个文档/视图架构,因此我将桌面窗口设为其父窗口。窗口创建成功,成功地位于屏幕的左上角并显示文本文件的前几行。但是,当我将它拖到新位置时,它的轮廓不会在拖动过程中绘制,尽管它最终会在预期的位置,因此用户没有视觉反馈。
这是创建窗口的代码:
我玩过各种 WS_ 和 CS_ 样式的组合,但没有成功。在我看来,窗口的非客户端部分在拖动操作期间没有被更新。
我想我在这里遗漏了一些基本的东西。任何澄清将不胜感激。
visual-c++ - CTab_Ctrl 类是否需要附加属性才能在其“窗口”中绘制?
我正在尝试修改选项卡并在第一个选项卡中插入 RichEditCtrl。
我之前修改的示例只使用了 RichTextCtrl 并在“占位符”文本框中“创建”了它。它工作得很好,但我想把 RichTextCtrl 推到一个选项卡中,并创建另一个选项卡来显示一些数据。问题是我现在只得到 2 个空白标签。我知道父对话框设置“Clip Children”和“Clip Siblings”可能很重要,但我不确定是否需要,如果需要的话。我也知道我的 RichEditCtrl 仍然存在,因为我仍在向它发送数据,但它肯定没有显示。
我的程序的这一部分甚至不是那么紧急,我只是想让它在这一点上正常工作......
visual-c++ - 无法在我的应用程序中更改对话框的颜色
我正在尝试为我的 Windows C++ 应用程序创建一个“黑暗模式”,部分是为了好玩,部分是为了尝试并完全理解在 MFC 中传递的消息,但我遇到了一些我无法在任何地方解释的非常奇怪的问题。
我今天大部分时间都在试图弄清楚这一点,并将尽我所能引用我看过并尝试实施的许多来源。
我相信我已经成功地为这两者编写了消息处理程序,WM_CTLCOLOR
并且WM_ERASEBKGND
基于此答案中的示例代码,但它们似乎对我的对话框没有任何影响。我已经在这里删减了代码,但我希望我已经提供了足够的信息来暴露我的问题。如果这还不够,我可以(不情愿地)分享整个回购。
软件Dlg.h
软件Dlg.cpp
资源.h
大约 6 个月前由同一用户发布的另一个问题得到了一些类似的代码的回答,但使用了包含“WinMain”函数的框架类型(抱歉,我无法区分 2+ 类型)。我的程序不包含 WinMain 函数,因此我无法直接使用示例代码......但这个答案的另一个区别是大卫被告知要捕获WM_CTLCOLORDLG
消息类型而不是WM_CTLCOLOR
消息类型。我试图捕捉这种新的消息类型,但 IntelliSense 告诉我它是未定义的,并且对话框的资源视图中完全没有特定的消息属性:
我也尝试按照Microsoft Docs page"WM_CTLCOLORDLG"
中的描述定义自己,但当我尝试通过“ON_MESSAGE”处理它时,继续收到错误消息。
我的代码不是原始项目,而是取自RTSS提供的开源示例。因此,它不使用标准(?)“pch.h”,而是“stdafx.h”(我猜这是旧的?)。我不确定这是否相关,但我觉得可能是。
我认为这个问题也可能给我带来很多其他成长的痛苦,所以非常感谢任何帮助。
c++ - 无法从 COleControl C++ 调用 CWnd::Create
我正在为 MFC 应用程序开发 ActiveX 控件。
在这个应用程序中,我有一个控制类:
和一个 CWnd 类:
以及活动 x 和 idl 文件的其他类...
在 MyControl 类中,我想将窗口 MyCWnd 作为 MFC 公寓(窗口运行的线程)打开。
为此,我在 MyControl 中有一个属性 theWnd 定义为:
在使用 MyControl 的方法中,我想通过调用来创建窗口:
但这条线返回假。
我应该如何在 COleControl 类中初始化然后创建(启动)一个 CWnd?如果不可能,我可以从 COleControl 以外的 ActiveX 控件继承另一个类吗?
mfc - 在嵌套选项卡结构中显示相同的对话框两次
在类型的嵌套选项卡结构中CMFCTabCtrl
(例如CMFCTabCtrl
,作为父选项卡中的选项卡CMFCTabCtrl
),如何在父选项卡和子CMFCTabCtrl
选项卡中显示父选项卡?
ParentTab1 ParentTab2 ParentTab3 <-- 父CMFCTabCtrl
选项卡
ChildTab1 ChildTab2 ParentTab2 <-- ParentTab3 /“子”CMFCTabCtrl
选项卡
我的第一种方法基本上是完全忽略了我现在有“2”父母来显示在ParentTab2中的对话框,但是我遇到了各种图形问题。我将如何克服对 2 位父母的这种需求?我可以创建某种软拷贝以便在孩子内部也显示ParentTab2CMFCTabCtrl
并且仍然让两个视图对点击事件等负责吗?
android - 如何在android中设置初始拥塞窗口大小?
我目前正在尝试控制我的 android 手机中的初始拥塞窗口。
我发现了一些适用于桌面 linux 的有用方法,但它不适用于 android..
我尝试了通过 adb shell 使用 ip route 的解决方案,如下所示:
命令/结果
ip route change default via 192.0.0.2 initcwnd 20
/RTNETLINK answers: No such file or directory
ip route | head -n 1 | while read p; do ``echo ip route change $p initcwnd 500 initrwnd 500``; done
/result of cmd: 192.0.0.0/27 dev rmnet_data2 proto kernel scope link src 192.0.0.2 initcwnd 500 initrwnd 500
,但是实际的 initcwnd 没有改变。
如果有其他方法可以更改 android 中的初始 cwnd,请告诉我。
提前致谢。
c++ - 如何使用 C++ 制作带有下拉菜单的简单 GUI
我真的很努力如何制作一个包含三种选项的窗口。我目前有一个使用CFileDialog
对象的设置,并成功实现了两个下拉菜单和多个检查项。
我想要的是实现一个弹出窗口,它有两个下拉菜单和复选框。如果在其中一个下拉菜单中选择了某个项目,则会打开文件对话框。
目前我正在尝试制作一个CWnd
对象并尝试在那里为它编写代码。
每次我运行它时,它都会过早返回 ( VALUE == FALSE
)。我做错什么了吗?有没有更简单的方法来创建一个窗口?
mfc - 如何激活位于禁用窗口 (CWnd) 中的按钮 (CButton)?
我有这个代码:
在哪里:
this
=我的派生CWnd
类rc
=CRect
按钮位置BTN_CMT
= 按钮 ID
当前上下文:如果我通过调用
禁用父级,即使我调用按钮 ( ) 上的函数,后者仍保持禁用状态;因此,它没有任何作用:单击,工具提示,...
我试图删除,但没有成功CWnd
EnableWindow(FALSE)
EnableWindow(TRUE)
m_pBtnCom->EnableWindow(TRUE)
WS_CHILD
问题:当窗口(我的代码中
的参数)被禁用时,是否可以激活按钮?this
c++ - 从 HWND 读取 MFC 消息的最简单方法?
我正在尝试使用带有将消息发送到服务器然后接收回消息的函数的 api 库。该函数的参数之一是 HWND,并且库文档说该消息将被它接收。为了阅读收到的消息,我研究了一些 MFC 文档,创建了一个继承 CDialog 的类,该类具有处理消息的函数,并尝试使用消息映射。
但是当我不想创建一个工作对话窗口时,这些努力似乎有点太麻烦了,而只是想要消息本身,这样我就可以让它出现在控制台中或在我的代码的其他部分中使用它。那么有什么方法可以简单地从 HWND 中“提取”消息而不用担心 MFC?如果没有,最简单的方法是什么?
更多关于 API 文档
类Wrapper
将dll库文件包装成成员函数,我正在尝试使用该函数BOOL Wrapper::Func1(HWND hWnd, DWORD msg, const char* inputStr)
类MyDlg
继承CDialog
并Wrapper m_wrp
作为其类成员。
LRESULT MyDlg::HandleEvent(WPARAM w, LPARAM l)
是一个成员函数,打印接收到的数据并返回TRUE
MyDlg
在定义成员函数的 cpp 文件中间有这段代码。似乎无论inputStr
由 发送到服务器Wrapper::Func1
,都会收到相同的消息CA_01
。CA_01
是在另一个头文件中定义的 const DWORD。经过一番搜索,我相信这是不断检查消息的部分,如果收到MSG
with msg = CA_01
,则调用HandleEvent
.:
有一个按钮MyDlg
创建,当它被按下时,输入文本被读取,void MyDlg::OnSend()
被调用并被m_wrp.Func1(...)
调用。
我已经从 api 文档中测试了这个示例代码,它工作正常。出现一个带有可编辑文本框和一个按钮的窗口,我输入一些文本,按下按钮,几秒钟后显示收到的消息。
但是,当我创建一个Wrapper
实例并在一个 while 循环中,尝试Func1
使用 PeekMessage 调用并接收消息时,什么也没有发生:
这是因为 ON_MESSAGE(...) 和 PeekMessage(...) 之间的差异吗?
c++ - InitInstance 在 UpdateWindow 抛出异常
我正在尝试将旧项目从 VS2008 移植到 VS2015。这个项目使用 MFC,我有一个编译版本,但它在 InitInstance 方法期间抛出异常,更准确地说是在调用 UpdateWindow 时。例外是读取访问冲突类型。这里有详细信息(评论是意大利语):
堆栈报告 mfc140ud.dll!CMFCToolBarImages::SmoothResize(double dblImageScale)处的违规,并显示消息:抛出异常:读取访问违规。pRowSrc2 是 0x6439008。
我已经直接在 VS2015 中使用 MFC 启动了一个新项目,以查看差异,之前CCommandLineInfo cmdInfo;
有这个:
但即使我在 MyApp 中添加了它也不起作用。
如果我评论m_pMainWnd->UpdateWindow()
相同类型的读取访问冲突异常,则会抛出异常。堆栈在mfc140ud.dll!CMFCToolBarImages::SmoothResize(double dblImageScale)处停止
我在另外两台电脑上试过了。在一个我有同样的问题,在他另一个没有问题,所以我认为这是关于可再发行或其他类似的东西的东西。在工作机器上,安装的 vc++ 版本是 14.0.24215,而在我的机器上是 14.2930133,所以我已经删除了它并且我已经安装了 vc++ 的版本 14.23026,但这并没有解决问题。
我是 MFC 的新手,我没有在网络上找到有用的提示,我不知道如何干预。
感谢所有为我花时间的人。