| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 536 人关注过本帖
标题:求高手指点,让某个子窗体固定在前面!
只看楼主 加入收藏
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
结帖率:87.21%
收藏
已结贴  问题点数:20 回复次数:5 
求高手指点,让某个子窗体固定在前面!
我做了一个MDIForm1窗体,有两个子窗体form1和form2,我要在form1窗体上打开form2,但是form2比form1的窗体小,所以两个窗体打开后点中后面的大窗体后会把小窗体遮住,我希望能让小窗体打开的情况下,点击后面的大窗体无效,小窗体要固定在前面,怎么弄?求教!
搜索更多相关主题的帖子: 希望 
2012-09-24 20:33
bczgvip
Rank: 14Rank: 14Rank: 14Rank: 14
等 级:贵宾
威 望:66
帖 子:1310
专家分:5312
注 册:2009-2-26
收藏
得分:10 
用SDK方式设定置前:
SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE)
用SDK方式取消置前
SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOSIZE|SWP_NOMOVE)
2012-09-24 23:58
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
我是初学者!好多都不懂!那个“|”是什么意思?通道吗?有具体实例没有?有的话给一个研究一下!820660020@麻烦斑竹了!

学习--------------学习-------------------学习--------------------!!
2012-09-25 09:17
邵帅
Rank: 7Rank: 7Rank: 7
等 级:贵宾
威 望:20
帖 子:174
专家分:505
注 册:2012-8-27
收藏
得分:10 
把窗体始终显示在最前:
则要用到一个API函数
首先在窗体模块声明API以及一些常量
private Declare Function SetWindowPos Lib "user32" (ByVal hwnd As Long, ByVal hWndInsertAfter As Long, ByVal x As Long, ByVal y As Long, ByVal cx As Long, ByVal cy As Long, ByVal wFlags As Long) As Long
private Const HWND_TOPMOST = -1
private Const HWND_NOTOPMOST = -2
private Const SWP_NOACTIVATE = &H10
private Const SWP_SHOWWINDOW = &H40
窗体最前需要执行以下代码:
SetWindowPos me.hwnd, HWND_TOPMOST, Form1.Left / 15, Form1.Top / 15, Form1.Width / 15, Form1.Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW
取消最前需要执行以下代码:
SetWindowPos me.hwnd, HWND_NOTOPMOST, Form1.Left / 15, Form1.Top / 15, Form1.Width / 15, Form1.Height / 15, SWP_NOACTIVATE Or SWP_SHOWWINDOW
就是上面的了,具体的参数你可以查一下API说明。

Figure out what you like. Try to become the best in the world of it.
2012-09-25 09:35
wxflw
Rank: 6Rank: 6
等 级:侠之大者
帖 子:325
专家分:435
注 册:2012-1-29
收藏
得分:0 
上面的大哥师傅没有给出我需要的答案!你们的只是让窗体打开的时候让窗口前置在最前面而不是固定在最前面
第二次打开的2号窗体如果没有第一次打开的1号窗体大,我只要点到1号窗体那么2号窗体就会隐藏到1号窗体后面
我就没法子找到2号窗体了,除非把1号窗体关闭才能显示小的2号窗体,
因为我用的是MDIForm1所以比较麻烦,求帮助谢谢!
   我用了个笨办法!把窗体选了0-None然后用下面的
retValue = SetWindowPos(Me.hwnd, HWND_TOPMOST, Me.CurrentX, Me.CurrentY, MDIForm1.ScaleWidth, MDIForm1.ScaleHeight, SWP_SHOWWINDOW)
这样就只能看到打开的窗体了!暂时是解决了,但不是我要的结果!求正解!

学习--------------学习-------------------学习--------------------!!
2012-09-25 11:40
张宏杰
Rank: 1
等 级:新手上路
帖 子:1
专家分:0
注 册:2013-4-27
收藏
得分:0 
在打开窗体2的按钮中,加入下面代码:

窗体2.Show 1, Me
2013-07-27 08:07
快速回复:求高手指点,让某个子窗体固定在前面!
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.023618 second(s), 9 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved