首页 新闻 会员 周边

windows编程如何调整两个界面的前后顺序

0
悬赏园豆:10 [已解决问题] 解决于 2014-07-07 14:06

对win32API比较生、基本没怎么用过、现在项目中有一个需求,比如有两个窗口A和B,初始是A在B上面表示,在一个特定的时机,怎么让B表示在A上面。。

yikoda的主页 yikoda | 初学一级 | 园豆:95
提问于:2014-06-26 19:17
< >
分享
最佳答案
0

首先获取B窗口的句柄hWndB,

然后

SetActiveWindow( hWndB );  // 设置B为当前窗口

或者

SetForegroundWindowhWndB );// 设置B为最上面的窗口(暂时)

或者

SetWindowPos(hWndB, HWND_TOP, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOZORDER); //设置B为最上面的窗口(永久)

 

牧之巴巴 | 菜鸟二级 |园豆:202 | 2014-06-26 21:40

我64位操作系统的,试了试怎么都没效果啊、

yikoda | 园豆:95 (初学一级) | 2014-06-27 09:06
其他回答(1)
0

SetWindowPos(hWndB, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

收获园豆:10
Launcher | 园豆:45045 (高人七级) | 2014-06-27 09:11

我现在其实是在做一个输入法、、有选词框和软键盘,我想让软键盘点下的时候,软键盘在上面,松开的时候,在下面、、

 

刚才调了上面的api,选词框上不了词了

支持(0) 反对(0) yikoda | 园豆:95 (初学一级) | 2014-06-27 09:24

@yikoda: SetWindowPos(hWndB, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOMOVE|SWP_NOSIZE);

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-06-27 09:49

@Launcher: ...试过了、、、

支持(0) 反对(0) yikoda | 园豆:95 (初学一级) | 2014-06-27 09:51

@Launcher: ...试过了、、、调了上面调整的api直接软键盘压下无反应了。

支持(0) 反对(0) yikoda | 园豆:95 (初学一级) | 2014-06-27 09:55

@yikoda: 窗体是不是到最前面了?

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-06-27 10:00

@Launcher: 软键盘压下,仍然在选词框的下面,而且,点下软键盘没反应了。

支持(0) 反对(0) yikoda | 园豆:95 (初学一级) | 2014-06-27 10:02

@yikoda: 我建议你去这里看看:http://www.codeproject.com/KB/combobox/#ComboBox+Controls

对 Win32 API 不熟的话就学习下,当然更多的是要理解 Windows 的窗体系统。你的需求需要一个整体的设计,不是一个API调用的问题。

支持(0) 反对(0) Launcher | 园豆:45045 (高人七级) | 2014-06-27 10:12
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册