回 帖 发 新 帖 刷新版面

主题:救急:实现不规则窗体时出现了问题。

我在做一个程序的时候。开始在Form1Create事件上创建了一个WndRgn(一个不规则区域)并用SetWndRgn(Handle,WndRgn,true)和SetWndPos两个函数实现了不规则窗体的显示。但是当我用:WindowState=wsMinimized将其改为最小化再用windowState=wsMaximized最大化时,窗体又变回规则窗体了。
    请教一下大家,我应该还要在哪加代码?

回复列表 (共4个回复)

沙发

应该要在Onpaint中Updatawindow()吧

板凳

问题基本上解决了。是因为在用WindowState=wsMinmized时我把其BorderStyle=bsSingel(因为这样最小化窗口没有将其放在任务栏中,而是变为了在屏幕左下角和一个小方框)要最大化的话只能将其再改为BorderStyle=bsNone。就这样么一改BorderStyle就不能成功画不规则窗口了。(如果用默认的最小化按钮时就会最小化在任务栏里,而且不会出现不规则窗口不成功的问题)所以现在新的问题出现了!
    怎么才能在代码中实现窗口的最小化(最小化在任务栏里的那一种)?
    望大家不吝赐教
    谢谢ing!

3 楼

BorderStyle=bsNone;这个不变
然后在窗体右上角自己加三个button,分别对应minimize、maximize和close。写出这三个button对应的事件即可
Application->Minimize(); 
Application->Maximize();
Close();
呵呵,没测试过。

4 楼

谢谢christ115
成功了!

我来回复

您尚未登录,请登录后再回复。点此登录或注册