主题:救急:实现不规则窗体时出现了问题。
			
 cljhadream
				 [专家分:50]  发布于 2006-03-28 18:27:00							
			我在做一个程序的时候。开始在Form1Create事件上创建了一个WndRgn(一个不规则区域)并用SetWndRgn(Handle,WndRgn,true)和SetWndPos两个函数实现了不规则窗体的显示。但是当我用:WindowState=wsMinimized将其改为最小化再用windowState=wsMaximized最大化时,窗体又变回规则窗体了。
    请教一下大家,我应该还要在哪加代码?
						
					 
		
			
回复列表 (共4个回复)
		
								
				沙发
				
					
hm6677 [专家分:190]  发布于 2006-03-30 09:16:00				
				应该要在Onpaint中Updatawindow()吧
							 
						
				板凳
				
					
cljhadream [专家分:50]  发布于 2006-03-30 23:02:00				
				问题基本上解决了。是因为在用WindowState=wsMinmized时我把其BorderStyle=bsSingel(因为这样最小化窗口没有将其放在任务栏中,而是变为了在屏幕左下角和一个小方框)要最大化的话只能将其再改为BorderStyle=bsNone。就这样么一改BorderStyle就不能成功画不规则窗口了。(如果用默认的最小化按钮时就会最小化在任务栏里,而且不会出现不规则窗口不成功的问题)所以现在新的问题出现了!
    怎么才能在代码中实现窗口的最小化(最小化在任务栏里的那一种)?
    望大家不吝赐教
    谢谢ing!
							 
						
				3 楼
				
					
christ115 [专家分:1580]  发布于 2006-04-01 11:40:00				
				BorderStyle=bsNone;这个不变
然后在窗体右上角自己加三个button,分别对应minimize、maximize和close。写出这三个button对应的事件即可
Application->Minimize(); 
Application->Maximize();
Close();
呵呵,没测试过。
							 
						
				4 楼
				
					
cljhadream [专家分:50]  发布于 2006-04-03 18:00:00				
				谢谢christ115
成功了!
							 
									
			
我来回复