imgui 窗口怎么以非模态启动 而不影响父窗口正常运行

img

最近在作一个项目,原来是用MFC做的,窗口是以非模态形态显示的,会与父窗体进行正常的交互,类似于游戏外挂吧,MFC是正常可以运作的,但是最近学习了imgui,发现这个库特别美观易学,准备转手,可是遇到了不小的麻烦,因为imgui启动后,是一直在进行 while循环的,导致了我的父窗口无法正常操作了,新线程的方法用过了,对我的软件有点不兼容,弃用这种方案,各位码友有什么新的方案吗,有人说把代码写到 WM_PAINT 消息事件里面,试了好像也不行。

可以重建一下消息循环,在imggui中处理一下主窗口的消息,这样应该是最快的处理方式。

以学习为目的话,多看看微软官方API手册,代码示例
https://docs.microsoft.com/en-us/windows/win32/apiindex/windows-api-list
https://github.com/microsoft/Windows-classic-samples

开发外挂工具类的,直接调用操作系统API就行,不要用任何其他库(包括MFC)

如果是开发成套桌面软件产品的,可以选择QT,Eletron,Duilib等

同求

应该可以解决
如下代码可以创造一个非模态对话框
void CllView::OnDialog()
{
CTestDlg *pDlg = new CTestDlg;
pDlg->Create(IDD_DIALOG1,this);
pDlg->ShowWindow(SW_SHOW);
}
此时创建的对话框处于激活状态,是时候我们需要父窗口为激活状态而且不出现标题框的闪烁,我们只需要做到以下几处改动:
1,声明p_Dlg为成员变量CTestDlg *pDlg,并为它申请空间pDlg = new CTestDlg;
2,创建对话框,让子窗口的Create操作在父窗口的OnInitDialog中执行.
3,显示子窗口,dlg->ShowWindow(SW_SHOWNOACTIVATE);

插个眼

虽然imgUI这个库很轻量,容易简单上手。
但是支持的文档可能比较少,要实现一些复杂的功能,没有文档支持,就会遇到各种各样的困难。
建议先系统的学一遍MFC,等你对界面UI交互,PostMessage,SendMessage有一定了解之后,再上手轻量的框架,遇到困难就能迎刃而解。
MFC更多的教程:

imgUI库支持的文档比较少,没有官方文档的支持很容易遇到各种各样的困难。先学一下基础吧,或者百度多查一些东西,都仔细看一遍,或许能帮你解决

imgui的采坑资料文档比较少,这种冷门库还是不要用到真实项目。