如果 Win32 应用程序的 UI 是使用 sigc 和 glibmm 设计的, 它如何实现消息循环? 它仍然使用 win32 API,例如 GetMessage、DispatchMessage、TranslateMessage 等吗? 或者他们使用其他功能来完成这个? 默认的WinProc还在吗?
最佳答案
sigc+glibmm 是 GTK C 框架回调/主循环之上的 C++ 级别,而 GTK C 框架回调/主循环又位于 native 回调/主循环之上(MacOSX 上为 NSRunLoop,Windows 上为 GetMessage)。
Windows 上的每个 GUI 应用程序都必须调用 GetMessage,以获得绝对的基础信息,例如窗口句柄、按键和鼠标移动。
不需要 TranslateMessage,因为加速键是通过 GTK 自己的实现来处理的。
SendMessage 使用很少,大多数需要 SendMessage 的调用都是对客户端控件(如按钮或文本字段小部件)的调用。在 GTK 中,它们被实现为 GtkButton 和 GtkEntry,并且 GTK 可以直接使用 C 实现,而无需经过 Windows 消息调度。
关于winapi - 使用sigc和glib的win32应用程序如何实现消息循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6841436/