目的是:
在主窗口中如感知子窗口的增减,来实现导航按钮的增减,就象它的WindowMenu一样 有劳各位指点!
在主窗口中如感知子窗口的增减,来实现导航按钮的增减,就象它的WindowMenu一样 有劳各位指点!
解决方案 »
- 功能请教
- 关于调用DLL中的函数,出现问题
- *.db 数据库
- *******************高分求写搜索指定网站EMAIL地址的原理,给点思路,有原码的更好,或者有相关的教程,书,网址都可以****************
- 难道这条简单的SQL语句有错吗?
- 高手请进:SQL Server下常用的3个数据操纵方法,用Access2000作桌面数据库时不知怎样实现?(在线等待)
- CoolSlob(Access is denied) and CoolSlob(Access is denied) and CoolSlob(Access is denied) 来领分
- www.gmember.com delphi版大概完成 给点建议 [email protected] 或写在留言本上
- 我写了这样的一个计算语句,可是 不能算出结果?
- 把一个access数据库内面的表导出为一个新的access文件,然后内面只有这个表
- 各位大哥请帮忙,多线程数据查询问题
- 我的可用分10天没增加了,放分试试
.....
case FormStyle of
fsMDIForm:
begin
with ClientCreateStruct do
begin
idFirstChild := $FF00;
hWindowMenu := 0;
if FWindowMenu <> nil then hWindowMenu := FWindowMenu.Handle;
end;
FClientHandle := Windows.CreateWindowEx(WS_EX_CLIENTEDGE, 'MDICLIENT',
nil, WS_CHILD or WS_VISIBLE or WS_GROUP or WS_TABSTOP or
WS_CLIPCHILDREN or WS_HSCROLL or WS_VSCROLL or WS_CLIPSIBLINGS or
MDIS_ALLCHILDSTYLES, 0, 0, ClientWidth, ClientHeight, Handle, 0,
HInstance, @ClientCreateStruct);
.......
非常幸运,这个过程是虚方法,
所以我们的一个办法可以自己重新继承一个TForm,比如叫做 TMyForm,
在里面override 这个CreateWnd,在里面不难写代码判断。
由此衍生出更简单的方法,就是在每个Form的OnCreate和OnDestory里面写代码,通知MDI窗口的建立和销毁。
类似的居于这个思想的方法应该很多。第二类方法:
利用ActionList的思想,建立一个TAction,在他的OnUpdate事件里面检查是否有MDI窗口的建立或者销毁,大部分的TAction都是这样在系统空闲的时候不停检查的,非常方便。
所以我觉得这个可能更适合些。其他的方法我目前没想到,我想一定还有不知道的更好方法。