在一个程序中创建两个窗体,如何使两个窗体都显示在任务栏上并可以用Alt+Tab进行切换? 这是不可能的。你可能是概念错误。任务栏上显示的是应用程序窗体,而不是任何你自己创建的别的窗体。可以看看《delphi6 从入门到精通》里面有讲。 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 用dll方式打开一个窗体时,你会发现任务栏多了这个窗体。要可以用Alt+Tab进行切换,就要用到MDI方式。所以可以在MDI方式下使用两个DLL就能达到你要的目的。 To :johnsonrao(johnson) 兄,我用Dll打开的Mdi方式的窗体,任务栏只会有主窗体我认为只要是用Mdi方式打开的窗体都是属于主窗体的Application的,所以应该不会出现多个窗体,这和从dll还是dpl中打开无关吧,不知道你是怎么实现的?我觉得楼主的问题可以捕捉键盘消息,在一个application 中切换自己的子窗体是比较容易的,而且不一定用alt+tab(防止和windows中的alt+tab冲突),用其他的键盘消息也可以。 试试设置窗体的parentwindow为“桌面窗口” 有一个tapplication对象就有一个任务栏显示!动态连接库也有tapplication对象!所以它也会在任务栏上显示!所以从主窗体中调用动态连接库应该能实现你的要求!有些人在调用动态连接库的时候在任务栏不想出现两个图标通常都会把主程序的application作为参数传入到DLL中,这样主程序和DLL共用一个TAPPLICATION对象就不会在任务栏上出现两个图标了!要想在一个程序中出现两个任务栏图标我也想知道怎么实现!FOXMAIL就可以这样!写新邮件的时候会在任务栏上多一个图标!可我没有找到它的动态连接库在哪里!真的很奇怪的!! 哈,这个我做过,保你满意在每个form处写上这么一段,就可以了申明处写上procedure CreateParams(var Params: TCreateParams); override;实现处写上procedure TForm1.CreateParams(var Params: TCreateParams);begin inherited; Params.WndParent := GetDesktopWindow;end;ok了 如果把Form的BorderStyle设为bsNone如何使图标显示在任务条中? installshield 2010 Delphi中TOpenDialog在VC中对应什么类? 请教如何终止正在执行的过程(procedure) 在delphi中用Sql如何只显示查询结果的前n行记录? 在DELPHI中如何使用SOCKET编程中的KEEP_ALIVE选项呢??能给一段代码吗?? 窗体大小怎样才能随分辨率的改变而改变以及子窗体大小的改变?? 关于事务处理,请看看这段代码是否正确。100分 delphi工程里怎样定义全局变量? 初學者的問題(關於事件) 基于mts的asp对象的注册问题。急 我的分全部用完了,只有十分了,一个循环问题? Help me!
要可以用Alt+Tab进行切换,就要用到MDI方式。所以可以在MDI方式下使用两个DLL就能达到你要的目的。
我用Dll打开的Mdi方式的窗体,任务栏只会有主窗体我认为只要是用Mdi方式打开的窗体都是属于主窗体的Application的,
所以应该不会出现多个窗体,这和从dll还是dpl中打开无关吧,不知道你是怎么实现的?我觉得楼主的问题可以捕捉键盘消息,在一个application 中切换自己的子窗体是比较容易的,而且不一定用alt+tab(防止和windows中的alt+tab冲突),用其他的键盘消息也可以。
动态连接库也有tapplication对象!所以它也会在任务栏上显示!
所以从主窗体中调用动态连接库应该能实现你的要求!有些人在调用动态连接库的时候在任务栏不想出现两个图标通常都会把主程序的application作为参数传入到DLL中,这样主程序和DLL共用一个TAPPLICATION对象就不会在任务栏上出现两个图标了!
要想在一个程序中出现两个任务栏图标我也想知道怎么实现!FOXMAIL就可以这样!写新邮件的时候会在任务栏上多一个图标!可我没有找到它的动态连接库在哪里!真的很奇怪的!!
申明处写上
procedure CreateParams(var Params: TCreateParams); override;
实现处写上
procedure TForm1.CreateParams(var Params: TCreateParams);
begin
inherited;
Params.WndParent := GetDesktopWindow;
end;ok了