为什么C++Builder关闭主窗体后,主窗体在任务栏上的按钮不会消失啊?
好像如果还有其它窗体没被关闭的话,那么主窗体Form1即使Close或者Hide了,其对应的任务栏按钮也还是不会消失的啊?只不过点击无效而已了。似乎Form1是个比较特殊...
好像如果还有其它窗体没被关闭的话,那么主窗体Form1即使Close或者Hide了,其对应的任务栏按钮也还是不会消失的啊?只不过点击无效而已了。
似乎Form1是个比较特殊的窗体,别的窗体的任务栏按钮都可以随着该窗体自己的Close和Hide而消失,而Form1呢,只有所有窗体全部Close或全部Hide的情况下,它的任务栏按钮才会不见,只要当前程序中有一个窗体还显示着,那Form1的任务栏按钮就不会消失似的……
那我应该怎么在非Form1的其它窗体中彻底Close掉Form1呢?(我打算设计一个“在任意窗口中关闭其它所有窗口”的功能)
顺便再来个小问题:TShiftState类型的变量怎么赋值啊?我想把同时按下Ctrl和Shift键的状态传给Form1的OnKeydown函数里,咋弄啊?
以下为补充:
另外,Form1的任务栏按钮好像确实蛮特殊的,它关联的应该不是Form1窗体,而是整个的当前程序,比如该按钮上的文字关联的就不是Form1->Caption,而是Application->Title,甚至经我测试,似乎即便执行了这句:Form1->ParentWindow=GetDesktopWindow();,程序也一样会保留一个任务栏按钮来显示Application->Title,换句话说,如果把Form1的父窗体设为桌面,那么就算只显示Form1这1个窗体,当前程序也还是会出现2个任务栏按钮的。
所以,在对Form1执行Close/Hide时,是不是要处理一下Application的什么东西呢? 展开
似乎Form1是个比较特殊的窗体,别的窗体的任务栏按钮都可以随着该窗体自己的Close和Hide而消失,而Form1呢,只有所有窗体全部Close或全部Hide的情况下,它的任务栏按钮才会不见,只要当前程序中有一个窗体还显示着,那Form1的任务栏按钮就不会消失似的……
那我应该怎么在非Form1的其它窗体中彻底Close掉Form1呢?(我打算设计一个“在任意窗口中关闭其它所有窗口”的功能)
顺便再来个小问题:TShiftState类型的变量怎么赋值啊?我想把同时按下Ctrl和Shift键的状态传给Form1的OnKeydown函数里,咋弄啊?
以下为补充:
另外,Form1的任务栏按钮好像确实蛮特殊的,它关联的应该不是Form1窗体,而是整个的当前程序,比如该按钮上的文字关联的就不是Form1->Caption,而是Application->Title,甚至经我测试,似乎即便执行了这句:Form1->ParentWindow=GetDesktopWindow();,程序也一样会保留一个任务栏按钮来显示Application->Title,换句话说,如果把Form1的父窗体设为桌面,那么就算只显示Form1这1个窗体,当前程序也还是会出现2个任务栏按钮的。
所以,在对Form1执行Close/Hide时,是不是要处理一下Application的什么东西呢? 展开
1个回答
展开全部
听LZ描述的现象有可能是BCB的bug
但是首先还是要排除代码问题的可能
① 按键等控件的父窗体指针是否正确的指向了Form1
② 是否对仍然显示的控件的属性有特殊设置?
③ 是否对Form1以及对应控件的分层信息有修改?
如果以上问题都不存在 LZ可以尝试在设定Form1不显示之前先设定有问题控件的Visible属性为False试一下。
但是首先还是要排除代码问题的可能
① 按键等控件的父窗体指针是否正确的指向了Form1
② 是否对仍然显示的控件的属性有特殊设置?
③ 是否对Form1以及对应控件的分层信息有修改?
如果以上问题都不存在 LZ可以尝试在设定Form1不显示之前先设定有问题控件的Visible属性为False试一下。
追问
没有啊,这3个代码问题我都没发现的,我从没设置过控件的父窗体指针的,而且我把Form1所有控件都Hide了也照样隐藏不了任务栏按钮啊。对了,我又补充了一部分问题描述,不知可有线索?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询