Qt是跨平台的c ++ Gui Library.Code一次并编译为不同的Platform.比如说,我已经编译了一个项目(包含很少工具栏的体面文本编辑器)或任何用于Windows(x86)的程序.
声明1:Program.exe入口点为WinMain.
声明2:文本编辑器和工具栏将使用"CreateWindow"win32 api创建.Qt有自己的类来实现,但要求OS(Windows)创建工具栏或文本编辑器,程序exe接口与OS(Windows).操作系统了解它知道它对Qt类一无所知,所以要创建工具栏或文本编辑器程序必须使用win32 api.
声明3:所有事件处理(按钮单击,鼠标单击)将使用Windows messeging系统处理.
注意:根据我的理解,似乎我正在使用win32 api glass查看所有内容.
正确.该WinMain实现由Qt库提供.
一半正确.顶级窗口是使用创建的CreateWindow.子窗口小部件,例如非顶层工具栏是Qt自己的窗口小部件,在应用程序之外是不透明的.它们仅通过辅助功能API公开.这允许您创建比Windows能够处理的更多小部件.如果不是特别快,一百万个儿童小部件是可行的.
正确 - 别无他法.当然,Qt会立即将本机消息转换为QEvent实例,并在内部将它们分派到各种QObject实例.在Qt-land中,所有事件都必须由QObject实例接收.
你断言winapi与内核有任何关系是不正确的.Winapi由一堆用户空间DLL实现.您可以自己实现这些DLL.这些DLL本身使用本机api调用内核.这是内核实际暴露给用户空间的API.
| 归档时间: |
|
| 查看次数: |
195 次 |
| 最近记录: |