如何防止我的窗口被最小化 我把上面的任务条给去了,不显示 最大化,最小化,关闭 按钮了但是点击 快速启动栏里的 显示桌面和 按 窗口键+D 键 的时候,我的窗口还是被最小化了如果实现 让这两种方式 也都不能把我的窗口最小化 的功能?就像 QQ的 登录 窗口,它就是 这样,最小化不了谢谢各位大哥了 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 import java.awt. * ; import java.awt.event. * ; public class MyFrame extends Frame { { public MyFrame() { setSize( 500 , 400 ); setResizable( false ); this .addWindowStateListener( new WindowStateListener() { // 状态监听器 public void windowStateChanged(WindowEvent e) { if (getState() == 1 ) { // 最小化状态 setState( 0 ); // 切换成正常状态 } } } );} public static void main(String[] args) { new MyFrame().setVisible( true );} } //定义个固定窗口 在窗体的事件中似乎是做不到。可以放一个Timer控件,然后加入下面的代码private void timer1_Tick(object sender, System.EventArgs e){ if (this.WindowState==FormWindowState.Minimized) { this.WindowState=FormWindowState.Normal; }} 不要用timer,那样会一直判断的可以在窗口的Resize事件里面写楼上的那段代码 忘了说了,我用的是 c#楼上的老兄给我说的是个java代码吧我考过去 报错啊,呵呵 if (this.WindowState==FormWindowState.Minimized) { this.WindowState=FormWindowState.Normal; }这段代码我加上以后也不好用啊我写在 Resize事件里了,不好用,我点 显示桌面,也就最小化了 在窗体的Resize事件加下面代码:if (this.WindowState==FormWindowState.Minimized){ this.WindowState=FormWindowState.Normal;} 再将窗体属性ControlBox设为False; FORM有个属性叫MINIMUM吧,设置为FALSE就可以了啊 我在窗体的Resize事件加下面代码:if (this.WindowState==FormWindowState.Minimized){ this.WindowState=FormWindowState.Normal;}然后把 ControlBox设为False;可是我点击 显示桌面或是 窗口+D的时候还是把它最小化了为什么不好用呢?为什么啊? 拦截此Form的Windows消息:protected override void WndProc(ref Message m){ const int WM_SYSCOMMAND = 0x0112; const int SC_MINIMIZE = 0xF020; switch ( m.Msg ) { case ( WM_SYSCOMMAND ): if ((int)m.WParam == SC_MINIMIZE ) { //System.Diagnostics.Trace.WriteLine("Minimizing the form now."); } else { base.WndProc (ref m); } break; default: base.WndProc (ref m); break; } if (this.WindowState==FormWindowState.Minimized){ this.WindowState=FormWindowState.Normal; TopMost=True;} 这样就可以了。 或者在构造函数中设置窗体的TopMost=True; 楼上的老兄说 点击 显示桌面 是控制不了,可是那个QQ的登录窗口,不就是可以的吗?不管是 点击 显示桌面 还是窗口+d,它都最小化不了。我不是写病毒啊,我要写一个管理软件,特殊环境,所以得做很多限制。 LZ,俺那个拦截Windows消息的方法你试过了吗?保证你用什么方法都不能把窗口最小化.对了,我贴的时候在最后少了个 } , 你自己添上就行,测试过的. 我刚才新建了一个项目用了一下你的方法,只是 窗口标题栏里的那个最小化按钮不好用了啊,但是 点击 显示桌面和 窗口+d 都是可以让它最小化的我的环境是 win2003+vs2003呵呵,是不是和系统也有点关系? 每个回复的好好看看楼主的要求:点“显示桌面”不会被最小化;按“WIN+D”不会被最小化。上面那么多代码都是牛皮啊,没有试就贴出来。简单点的还是使用timer to LZ我试过RedGoldFish(红金鱼)的方法了,除《显示桌面》不能阻止外,其它的都能阻止。我用的是WinXP+VS2005 加个timer控件,不停的激活窗体就行了。 to RedGoldFish(红金鱼) :很想知道单击显示桌面,窗口被隐藏时系统消息值是多少?或是哪儿可以查到各类系统消息的值? ....学习...我想知道怎样屏蔽alt+tab的切换 如果用 timer应该怎么做?会不会占用更多的系统资源? 对不起,兄弟们,大意了.说实话我也没得到最后答案,但有一点可以分享:当你按"显示桌面"时,Windows 把桌面(Desktop)程序放到所有程序的前面,类似于Z Order变化,把所有其它窗口全挡在后边,但这时候你自己的程序并不会收到Windows 消息,因为系统只把消息发给了桌面(Desktop)程序,这就是最难办的地方. 原来QQ登陆窗口也没有做特殊的处理,就是一个顶层窗口而已。private void Form1_Load(object sender, System.EventArgs e){ this.TopMost = true;}private void Form1_Resize(object sender, System.EventArgs e){ this.WindowState=FormWindowState.Normal;} 其实, Flashget的浮动窗口也是这个效果, 之前网上找了找, 没什么好结果 笨笨都知道是QQ登录窗口了,还不去分析下,看看有什么不同,听听我的。只要TopMost=True;ShouInTaskbar=False经测试 win+d;win+m;显示桌面,都不起作用了,呵呵 如果像QQ那样的话,虽然 win+d;win+m、显示桌面都不好用了,可是运行其它窗口的时候,就会把其它窗口挡住,有没有办法让它挡不住要运行的其它窗口? 这是什么意思不懂。。。。 .net对网页进行截图,但是无法截网页里的flash,请教~ 请教各位大虾访问SQL数据库的一个问题 在.NET中有没有一种通用的控制字符呢? 如何解决C# Form程序运行过程中不响应的问题? 有一种静态类成员函数,它返会自己,这个有什么用??怎么用,哪有介绍?对这个不太明白是怎么回事。 请问如何读取 book 的 ISBN 值?? 控制台输入和输出 Crystal Report,HELP!! C#编译的exe文件,无法使用!!! 如何随机获得图片的名称 关于case
import java.awt.event. * ;
public class MyFrame extends Frame {
{
public MyFrame() {
setSize( 500 , 400 );
setResizable( false );
this .addWindowStateListener( new WindowStateListener() { // 状态监听器
public void windowStateChanged(WindowEvent e) {
if (getState() == 1 ) { // 最小化状态
setState( 0 ); // 切换成正常状态
}
}
} );
}
public static void main(String[] args) {
new MyFrame().setVisible( true );
}
} //定义个固定窗口
可以放一个Timer控件,然后加入下面的代码
private void timer1_Tick(object sender, System.EventArgs e)
{
if (this.WindowState==FormWindowState.Minimized)
{
this.WindowState=FormWindowState.Normal;
}
}
可以在窗口的Resize事件里面写楼上的那段代码
我用的是 c#
楼上的老兄给我说的是个java代码吧
我考过去 报错啊,呵呵
{
this.WindowState=FormWindowState.Normal;
}这段代码我加上以后也不好用啊
我写在
Resize
事件里了,不好用,我点 显示桌面,也就最小化了
{
this.WindowState=FormWindowState.Normal;
}
{
this.WindowState=FormWindowState.Normal;
}然后把
ControlBox设为False;可是我点击 显示桌面或是 窗口+D的时候还是把它最小化了为什么不好用呢?为什么啊?
{
const int WM_SYSCOMMAND = 0x0112;
const int SC_MINIMIZE = 0xF020; switch ( m.Msg )
{
case ( WM_SYSCOMMAND ):
if ((int)m.WParam == SC_MINIMIZE )
{
//System.Diagnostics.Trace.WriteLine("Minimizing the form now.");
}
else
{
base.WndProc (ref m);
}
break;
default:
base.WndProc (ref m);
break;
}
{
this.WindowState=FormWindowState.Normal;
TopMost=True;
} 这样就可以了。
那个QQ的登录窗口,不就是可以的吗?
不管是 点击 显示桌面 还是窗口+d,它都最小化不了。我不是写病毒啊,我要写一个管理软件,特殊环境,所以
得做很多限制。
但是 点击 显示桌面和 窗口+d 都是可以让它最小化的
我的环境是 win2003+vs2003
呵呵,是不是和系统也有点关系?
点“显示桌面”不会被最小化;
按“WIN+D”不会被最小化。
上面那么多代码都是牛皮啊,没有试就贴出来。简单点的还是使用timer
我试过RedGoldFish(红金鱼)的方法了,除《显示桌面》不能阻止外,其它的都能阻止。
我用的是WinXP+VS2005
private void Form1_Load(object sender, System.EventArgs e)
{
this.TopMost = true;
}private void Form1_Resize(object sender, System.EventArgs e)
{
this.WindowState=FormWindowState.Normal;
}
都知道是QQ登录窗口了,还不去分析下,看看有什么不同,听听我的。
只要TopMost=True;ShouInTaskbar=False
经测试 win+d;win+m;显示桌面,都不起作用了,呵呵
可是运行其它窗口的时候,就会把其它窗口挡住,有没有办法让它挡不住要运行的其它窗口?