现在的位置: 首页 > 综合 > 正文

Qt中捕获Windows消息

2012年11月01日 ⁄ 综合 ⁄ 共 604字 ⁄ 字号 评论关闭

个人比较喜欢Qt的消息机制,算是怕了MFC了,写出来的代码自己都不认得。。。最要命的是,我想自己写的UI也可以在Linux下跑。

最初打算发展wxWidgets,一样是跨平台,速度还可以。之前一直对Qt的License抱有偏见,感觉不够Linux精神,一直没瞧得上它。

甚至因此KDE在我桌面上出现的几率远远小于GNOME。。。

后来,在跨平台、IDE、界面设计工具等多方面因素考虑下,我选择了曾被我忽略了N年的Qt

(我最先接触的UI是gtk,而不是win32或mfc之类)。当用了Qt以后,coding体验令人赞叹。

无论是简单的界面设计,还是清晰的消息机制,抑或是多语言支持,跨平台,丰富的辅助库,LGPL的License等等方面。。。

Qt毫无疑问地成了我最喜爱的UI库了。。。

 

既然现在还在做着Windows下的开发,那就忘不了win32。言归正传,就说一个函数。

可以在Qt捕获Windows系统消息之前,自己首先过滤一下。。

bool QWidget::winEvent ( MSG * message, long * result )   [virtual protected]

太完美了,其实Windows里很多东西在Qt里都可以获取的,比如窗口句柄就可以通过QWidget的winId()得到。

但是,如果你写上这些代码的话,显然破坏了跨平台性。不过,有时全局的跨平台性就是通过局部的平台依赖实现的。这个叫“分而治之”。。

抱歉!评论已关闭.