VC驿站

 找回密码
 加入驿站

QQ登录

只需一步,快速开始

搜索
查看: 699|回复: 0

[求助] MFC对话框前置问题

[复制链接]
52_avatar_middle
在线会员 发表于 2016-12-26 16:00:02 | 显示全部楼层 |阅读模式
3驿站币
背景:hook客户端程序clientApp,hook程序为一个对话框程序
目的:在clientApp的唯一eidt控件输入交易码的时候,hook程序弹出该交易的help信息(对话框隐藏并嵌入浏览器控件,Navigate来显示帮助信息)
         还有:对话框启动的时候隐藏在托盘,在defWindowProc实现

现:hook写的是一个键盘钩子dll,对话框程序是调起程序,clientApp是个全屏的
     hook捕获到clientApp输入交易码后,调用Navigate后,通过SendMessage发WM_PAINT消息,在OnPaint调用ShowWindow()和UpdateWindow();

问题:
     程序执行的时候,如果第一次输入交易码,能弹出对话框,显示帮助信息,
但是再次输入交易码后,没弹出对话框,点任务栏显示对话框确实也根据交易码获取了帮助信息,但没弹到前面来

已做:
    一开始是捕获交易码后发WM_NCPAINT,然后在defWindowProc中ShowWindow(),试了SetActiveWindow(),SetForegroundWindow(),只在任务栏变亮,但
是未在clientApp界面上显示(第一次都是成功的,就是第二次不成功显示),点击任务栏显示正确。然后查了资料,说WM_NCPAINT是重绘非客户区,然后我换WM_PAINT,并在OnPaint()
中显示,还是一样的,第一次能弹,第二次不行!!!!
请高手解惑(PS: 第一次用MFC做这个,对话框底层调用流程不是很理解)

(SetWindowPos Top不行,用户操作的时候,当输交易码的时候,帮助信息对话框应该被覆盖了,输完交易码回车的时候弹出)





上一篇:vc2010 我重装系统后 2010重新装后 按钮双击事件进不去如何解决
下一篇:急求大神可将此代码在.c文件中实现,且功能不变,无错,非诚勿扰
您需要登录后才可以回帖 登录 | 加入驿站 qq_login

本版积分规则

关闭

站长提醒上一条 /2 下一条

QQ|小黑屋|手机版|VC驿站 ( 辽ICP备09019393号tongdun|网站地图wx_jqr

GMT+8, 2019-5-25 04:09

Powered by Discuz! X3.4

© 2009-2019 cctry.com

快速回复 返回顶部 返回列表