netease-im / NIM_Duilib_Framework

网易云信Windows应用开发框架。
MIT License
2.1k stars 835 forks source link

把一个session_box单独出来放在session_form中后,任务栏缩略图空白 #499

Open cloud14k opened 6 months ago

cloud14k commented 6 months ago

问题现象

把一个session_box单独出来放在session_form中后,任务栏缩略图空白,给人感觉就是session_box的内容没有生成正确的缩略图。但在主窗口中时又是好的。查看代码,session_form中关于缩略图的逻辑应该都是ok的,控件指针也正确传递过去了,就是不知道为什么是空白。 主窗口没有使用TaskbarManager,它为什么能正确显示任务栏缩略图呢。 1

预期结果

希望能显示正确的任务栏缩略图

重现步骤

使用这个函数创建的单独session 窗口 SessionBox SessionManager::CreateStandAloneSessionBox(const std::string & session_id, nim::NIMSessionType type) { SessionBox session_box = NULL; SessionForm *session_form = NULL;

session_form=new SessionForm;
HWND hwnd = session_form->Create();
if (hwnd == NULL)
    return NULL;    

std::vector<ForcePushManager::ForcePushInfo> infos;
ForcePushManager::GetInstance()->GetAtMeMsgs(session_id, infos);

session_box= session_form->CreateSessionBox(session_id, type);
session_box->SetSeparateFlag();
session_box->InvokeShowMsgs(true);
session_box->InitAtMeView(infos);   
if (session_box->GetSessionForm() != nullptr)
{
    session_box->GetSessionForm()->ActiveWindow();
    session_box->GetSessionForm()->SetActiveSessionBox(session_id);
    //session_box->FindSubControl(L"sysbar")->SetFixedWidth(100);
}
session_box_map_[session_id] = session_box;
return session_box;

}

nmgwddj commented 6 months ago

See https://github.com/netease-im/NIM_Duilib_Framework/issues/500