导航
  • 主页
  • VC综合技术
  • 互联网技术
  • MFC AppLauncher
  • .NET 技术
  • 界面
  • 进程
  • 算法
  • 硬件/系统
  • 数据库
  • VC++技术资源

在下实在不知道怎么做了,再次向各位求解一个关于窗口Focus的问题..... 在线求救!!!!

endy_wqf 2002-08-02 04:15:10
我有一个单View/Doc的工程,如果你在View上使用鼠标左键单击时,会弹出一个窗口,这个窗口的风格象“金山词霸的解释单词含义的窗口”。当鼠标移动时,这个窗口会自动关闭。
现在的问题是:
如果这个窗口在弹出的时候,MainFrame会失去Focus,所以我不得不显式的调用SetFocus使MainFrame又取回Focus,这时因为刷新的缘故MainFrame会很明显的闪一下。
我期望的是:
我打算在显示这个窗口时根本就不让MainFrame失去Focus,这样MainFrame也就不会闪了,我该怎么做呢?
...全文
27 点赞 收藏 17
写回复
17 条回复
切换为时间正序
请发表友善的回复…
发表回复
In355Hz 2002-08-03
ShowWindow(hwndPopup, SW_SHOWNOACTIVATE);
可以实现。
SW_SHOWNOACTIVATE在MSDN中查不到,查查Winuser.h就可以看到了
相关的还有SW_SHOWMINNOACTIVE。
回复
siphonelee 2002-08-03
up
回复
cywater2000 2002-08-02
在视图类中重载函数OnMouseActive,以专门将焦点设置到视图
回复
blackdankey 2002-08-02
我的建议:弹出的“窗口”,不用真正的窗口,用DC之类的在需要的地方画出这个“窗口”,这样,原来的窗口并不失去焦点(其实画的动作,还是在此窗口上实现的),鼠标移动的时候,刷新原来的窗口就行了。
回复
lin_li_00 2002-08-02
反正以前我用的是行的,不过现在不太记得了,不是ShowWindow就是BringWindowToTop或者就是SetForegroundWindow,可以保证一定行的,哥们相信我,别的我拿不准,不过这个肯定是有个行的
回复
wanglei888 2002-08-02
:( 我也没办法了

祝你好运!
回复
endy_wqf 2002-08-02
我的窗口已经是 WS_POPUP与WM_EX_TOOLWINDOW风格了,也不行
回复
endy_wqf 2002-08-02
wanglei888(阿笨猫):

你好!你的第二个答案我也试过了,好像也没有效果
回复
endy_wqf 2002-08-02
营营的回答:
SetWindowPos(....... SP_NOACTIVE)


我试了一下,也好像不行
回复
wanglei888 2002-08-02
是我写的不够清楚?

CYourWnd::YourMethod() {
SetRedraw(FALSE);
pChild->ShowWindow(SW_SHOW);
SetFocus(); // 我忘记写这一句了吗?
SetRedraw(TRUE);// CYourWnd的
}
回复
endy_wqf 2002-08-02
阿笨猫上次的回答:
CMainFrame::YourMethod() {
SetRedraw(FALSE);
pChild->ShowWindow(SW_SHOW);
SetRedraw(TRUE);// CMainFrame的
}
我的情况是:
那个窗口不是MainFrame的子窗口,那个窗口显示不显示是由它自己控制的,我试了一下,好像不行
回复
devouer 2002-08-02
之所以会LOST FOCUS是由于API函数SHOWWINDOW作的怪(原因未知),如果你的窗口用SetWindowPos,同时将要显示的窗口放在TOPMOST就可以了。
回复
wanglei888 2002-08-02
我上次告诉你的方法没有效果吗?我可是自己测试有效的啊
回复
Clineyuan 2002-08-02
SetWindowPos(....... SP_NOACTIVE)
回复
FFXI 2002-08-02
能不能做成子窗口,试试!
回复
In355Hz 2002-08-02
让窗口拥有WS_POPUP与WM_EX_TOOLWINDOW风格试试?
回复
dy_paradise 2002-08-02
帮你UP了
回复
发动态
发帖子
VC/MFC
创建于2007-09-28

1.5w+

社区成员

VC/MFC相关问题讨论
申请成为版主
社区公告

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