MDI子窗体在任务栏显示 (50分)

  • 主题发起人 主题发起人 tonmy
  • 开始时间 开始时间
T

tonmy

Unregistered / Unconfirmed
GUEST, unregistred user!
我在做一个多文档的程序,遇到以下问题,希望各高手指点:<br>1、在MDI多文档程序中如何让一个窗体停在顶层,同时可以对下层的文档进行编辑,<br>就象word的查找替换一样;<br>2、如何使得每新建一个子窗体,任务栏上增加一个任务条,也是象WORD或EXCEL一样;现在只有<br>主窗体任务显示在任务栏上。
 
1。一个form, formstyle设置为最顶端, 不要设置为mdichild,应该可以;<br>2。没搞懂
 
第一个问题已经解决,方法如下:<br>&nbsp; &nbsp;SetWindowPos(WindowName.Handle,Hwnd_Topmost,0,0,0,0,(SWP_NOMOVE Or SWP_NOSIZE))<br>第二个问题的意思是,如打开一个IE窗口,在屏幕底下的任务栏都有一个对应的任务,以进<br>行切换、关闭等。我要的是MDI的每个子窗体在任务栏上都有一个对应的任务显示。
 
对MDI子窗体在任务栏显示真的没有办法吗.<br>用createparams方法:<br>procedure TForm2.CreateParams(var Params: TCreateParams);<br>begin<br>&nbsp; inherited;<br>&nbsp; Params.ExStyle := Params.ExStyle or WS_EX_APPWINDOW;<br>end;<br>对MDI子窗体无效呀.
 
应该不能把,word它是运行一个新的实例,<br>假如你要实现word那样的功能也行啊,<br>不过和你的思路有点偏差,你可以新建一个子窗体时,把你的程序<br>重新运行一偏,传入必要的参数(如子窗体的属性等等)
 
用SetWindowLong函数试试。<br>LONG SetWindowLong(<br><br>&nbsp; &nbsp; HWND hWnd, // handle of window<br>&nbsp; &nbsp; int nIndex, // offset of value to set<br>&nbsp; &nbsp; LONG dwNewLong // new value<br>&nbsp; &nbsp;);
 
...<br>&nbsp; &nbsp; procedure CreateParams(var Params: TCreateParams); override;<br>&nbsp; private<br>&nbsp; &nbsp; { Private declarations }<br>...<br><br>procedure TForm2.CreateParams(var Params: TCreateParams);<br>begin<br>&nbsp; inherited;<br>&nbsp; Params.WndParent := 0;<br>end;<br>行不.
 
第二个问题:<br>setwindowlong(form1.Handle,gwl_exstyle,getwindowlong(form1.Handle,gwl_exstyle)or ws_ex_appwindow);
 
sydan和wy0311的方法对一般窗体是有效的,但对MDI子窗体行不通。不知还有没有别的方法?
 
我以前回答过:http://www.delphibbs.com/delphibbs/dispq.asp?lid=1003136
 
to chemer<br>&nbsp; 对mdi子窗体不起作用,还有没有别的办法
 
我对Excel PowerPoint的MDI窗口有怀疑,它们仿佛就是模仿一个MDI窗口,<br>而其本质还是SDI
 
我试过了,MDI和这个是矛盾的。你可以用一些控件来达到模拟任务栏切换子窗口的目的。
 
多人接受答案了。
 
后退
顶部