主题:救急:实现不规则窗体时出现了问题。
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
成功了!
我来回复