请问Qt该怎么做?
Qt应该没有预留这方面的机制,这是窗口管理器的事情。
初步想通过预编译#ifdef Q_OS_WIN 这样的本地实现,
至少先把windows下搞定,但是不知道从哪里下手。
提问之前我思考过,查过资料,搞不定……感谢!
> --
> 您收到此邮件是因为您订阅了 Google 网上论坛的“Qt中文”论坛。
> 要向此网上论坛发帖,请发送电子邮件至 qt-c...@googlegroups.com。
> 要取消订阅此网上论坛,请发送电子邮件至 qt-china+u...@googlegroups.com。
> 若有更多问题,请通过 http://groups.google.com/group/qt-china?hl=zh-CN 访问此网上论坛。
>
>
楼主能否把你的需求详述一下? nonclient-area是MS下的名词我没有用过,是不是指标题栏和边框? 你想重绘什么地方?
B.R
Kermit
On 5月29日, 下午4时40分, Goldfish Huang <hgoldf...@gmail.com> wrote:
> 似乎可以通过winId()得到窗口句柄。然后应该就跟MFC差不多了吧。
>
> 在 2011年5月28日 下午9:30,叁K <caoxi...@gmail.com> 写道:> MFC可以这样:
> >http://stackoverflow.com/questions/99623/how-to-draw-in-the-nonclient...
啰嗦部分:
通常由窗口管理器绘制。
一种方案是用setWindowFlags屏蔽非客户区,然后在客户区“伪造”一个
出来,让用户错觉新的标题栏和边框,但是任务栏点击发出的系统事件收不到。
一种方案就是如1楼stackoverflow那个例子(windows mfc),但是在Qt下不知道从哪里下口,
有预感要修改Qt源代码,但是GPL和LGPL的情况感觉蛋疼。
On 5月29日, 下午5时38分, Kermit <kermit....@gmail.com> wrote:
> On Sun, May 29, 2011 at 04:40:57PM +0800, Goldfish Huang wrote:
> > 似乎可以通过winId()得到窗口句柄。然后应该就跟MFC差不多了吧。
>
> > 在 2011年5月28日 下午9:30,叁K <caoxi...@gmail.com> 写道:
> > > MFC可以这样:
> > >http://stackoverflow.com/questions/99623/how-to-draw-in-the-nonclient...
>
这个貌似应该是QStyle要解决的问题吧? 你看看QStyle相关文档有没有什么方案。
B.R
Kermit
P.S 结贴了,也谢谢前面几位的帮助。
On 5月30日, 下午2时32分, Goldfish Huang <hgoldf...@gmail.com> wrote:
> 稍微看了一下,Windows下的话,QWidget::winId()应该就是窗口的句柄,类型是HWND。可以通过QWidget::winEvent()-处理Windows事件。