走过路过,千万别错过,【 SetParent的那点事 】

_船长_ 2013-12-18 11:54:10
遇到困难了,特来请教一下大家,问题描述一下:

我在一个程序A中显示程序B的界面,即将程序B主界面设置为程序A的子窗口,通过SetParent函数,发现设置成功后,界面如下:


通过图大家可以看出,此时程序B的界面没有激活,并且那个文本输入框无法输入内容,但是下面的两个按键却可以点击,


窗口刷新后,发现程序B的界面又出现这种情况:


大家指点一下,究竟何种原因呢??

...全文
4649 13 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
13 条回复
切换为时间正序
请发表友善的回复…
发表回复
schlafenhamster 2013-12-20
  • 打赏
  • 举报
回复
"但是下面的两个按键却可以点击" 说明父窗口已经设置好
_船长_ 2013-12-20
  • 打赏
  • 举报
回复
泥煤,这是要沉啊,救一下吧
zhuyf87 2013-12-20
  • 打赏
  • 举报
回复
“我在一个程序A中显示程序B的界面,即将程序B主界面设置为程序A的子窗口,通过SetParent函数” 楼主的两个界面分属不同的应用程序?我在msdn中看到这样一句话:
HWND SetParent( 
  HWND hWndChild, 
  HWND hWndNewParent 
); 
Remarks An application can use the SetParent function to set the parent window of a pop-up, overlapped, or child window. The new parent window and the child window must belong to the same application.
路人乙2019 2013-12-19
  • 打赏
  • 举报
回复
这种看似简单,匪夷所思的方法不曾尝试。两个窗口不在一个进程中,变量资源都不能共享,这既不是模态也不是非模态对话框。各自的刷新都没引起另一个窗口的重绘。文本框不能输入是因为,焦点在a窗口上,焦点不可能同时存在于两个窗口上。
gfm688 2013-12-19
  • 打赏
  • 举报
回复
程序B窗口.ModifyStyle(WS_POPUP, WS_CHILD, SWP_FRAMECHANGED);
穿跑鞋不跑步 2013-12-19
  • 打赏
  • 举报
回复
你是把对话框b内嵌到对话框a了。
_船长_ 2013-12-19
  • 打赏
  • 举报
回复
希望版主可以出来帮忙解决一下啊!
_船长_ 2013-12-19
  • 打赏
  • 举报
回复
引用 1 楼 zzdmfk 的回复:
这种看似简单,匪夷所思的方法不曾尝试。两个窗口不在一个进程中,变量资源都不能共享,这既不是模态也不是非模态对话框。各自的刷新都没引起另一个窗口的重绘。文本框不能输入是因为,焦点在a窗口上,焦点不可能同时存在于两个窗口上。
这种解释有点牵强,因为程序B的窗口我仍然可以点击下面的按键,而且这个问题,我也很多网站上看见过,包括msdn社区,可是都没有解决。
_船长_ 2013-12-19
  • 打赏
  • 举报
回复
引用 4 楼 tiger9991 的回复:
MSDN里面说了: if hWndNewParent is not NULL and the window was previously a child of the desktop, you should clear the WS_POPUP style and set the WS_CHILD style before calling SetParent. 就是如果你原来是主窗体要修改style为WS_CHILD的
当然设置属性了,显然不是这种情况导致的
看不见的裂痕 2013-12-19
  • 打赏
  • 举报
回复
MSDN里面说了: if hWndNewParent is not NULL and the window was previously a child of the desktop, you should clear the WS_POPUP style and set the WS_CHILD style before calling SetParent. 就是如果你原来是主窗体要修改style为WS_CHILD的
s_hhm 2013-12-19
  • 打赏
  • 举报
回复
如果是两个进程.你怎么获得的B进程的窗口句柄的.进程间相互独立,应该不行吧.
rxguoblp 2013-12-19
  • 打赏
  • 举报
回复
“下面的两个按键却可以点击”,点击之后,能进入到相应的功能函数中码?
_船长_ 2013-12-19
  • 打赏
  • 举报
回复
自己顶一下吧!
资源下载链接为: https://pan.quark.cn/s/abbae039bf2a 在计算机视觉领域,实时目标跟踪是许多应用的核心任务,例如监控系统、自动驾驶汽车和无人机导航等。本文将重点介绍一种在2017年备受关注的高效目标跟踪算法——BACF(Boosted Adaptive Clustering Filter)。该算法因其卓越的实时性和高精度而脱颖而出,其核心代码是用MATLAB编写的。 BACF算法全称为Boosted Adaptive Clustering Filter,是基于卡尔曼滤波器改进的一种算法。传统卡尔曼滤波在处理复杂背景和目标形变时存在局限性,而BACF通过引入自适应聚类和Boosting策略,显著提升了对目标特征的捕获和跟踪能力。 自适应聚类是BACF算法的关键技术之一。它通过动态更新特征空间中的聚类中心,更准确地捕捉目标的外观变化,从而在光照变化、遮挡和目标形变等复杂情况下保持跟踪的稳定性。此外,BACF还采用了Boosting策略。Boosting是一种集成学习方法,通过组合多个弱分类器形成强分类器。在BACF中,Boosting用于优化目标检测性能,动态调整特征权重,强化对目标识别贡献大的特征,从而提高跟踪精度。BACF算法在设计时充分考虑了计算效率,能够在保持高精度的同时实现快速实时的目标跟踪,这对于需要快速响应的应用场景(如视频监控和自动驾驶)至关重要。 MATLAB作为一种强大的数学计算和数据分析工具,非常适合用于算法的原型开发和测试。BACF算法的MATLAB实现提供了清晰的代码结构,方便研究人员理解其工作原理并进行优化和扩展。通常,BACF的MATLAB源码包含以下部分:主函数(实现整个跟踪算法的核心代码)、特征提取模块(从视频帧中提取目标特征的子程序)、聚类算法(实现自适应聚类过程)、Boosting算法(包含特征权重更新的代
内容概要:本书《Deep Reinforcement Learning with Guaranteed Performance》探讨了基于李雅普诺夫方法的深度强化学习及其在非线性系统最优控制中的应用。书中提出了一种近似最优自适应控制方法,结合泰勒展开、神经网络、估计器设计及滑模控制思想,解决了不同场景下的跟踪控制问题。该方法不仅保证了性能指标的渐近收敛,还确保了跟踪误差的渐近收敛至零。此外,书中还涉及了执行器饱和、冗余解析等问题,并提出了新的冗余解析方法,验证了所提方法的有效性和优越性。 适合人群:研究生及以上学历的研究人员,特别是从自适应/最优控制、机器人学和动态神经网络领域的学术界和工业界研究人员。 使用场景及目标:①研究非线性系统的最优控制问题,特别是在存在输入约束和系统动力学的情况下;②解决带有参数不确定性的线性和非线性系统的跟踪控制问题;③探索基于李雅普诺夫方法的深度强化学习在非线性系统控制中的应用;④设计和验证针对冗余机械臂的新型冗余解析方法。 其他说明:本书分为七章,每章内容相对独立,便于读者理解。书中不仅提供了理论分析,还通过实际应用(如欠驱动船舶、冗余机械臂)验证了所提方法的有效性。此外,作者鼓励读者通过仿真和实验进一步验证书中提出的理论和技术。

16,548

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • AIGC Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧