CFileDialog另存为对话框不显示?

renzhenshiduoa renzhenshiduoa 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
实现一个基于对话框的文件传输,客户端选择一个文件,在服务器端启动一个线程函数,在serverdlg.cpp声明如下
UINT server_thd(LPVOID p)
{
if( (ssocket = accept(listen_sock, (struct sockaddr *)&client_addr, &iaddrSize)) == INVALID_SOCKET)
{
//MessageBox(__T("创建监听失败"))
}
while(1)
{
res = recv(ssocket, msg, 1024, 0);
msg[res] = '\0';
::MessageBox(NULL,("Recv a File"),NULL,MB_OK);
CFileDialog dlg ( FALSE ) ;
dlg.m_ofn.hInstance = AfxGetInstanceHandle();
dlg.m_ofn.lpstrFilter= "All Files(*.*)|(*.*)";
dlg.m_ofn.lpstrFile = filename;
dlg.m_ofn.Flags &= ~OFN_EXPLORER;
if ( dlg.DoModal() == IDOK )
{
CFile file(filename, CFile::modeCreate| CFile::typeBinary| CFile::modeWrite);
}
}
}

传输txt和excel文件都没有问题,传输pdf和MP4文件时,另存为对话框就打不开,单步调式进入
INT_PTR CFileDialog::DoModal()函数时,
if (m_ofn.hwndOwner != NULL && ::IsWindowEnabled(m_ofn.hwndOwner))
{
bEnableParent = TRUE;
::EnableWindow(m_ofn.hwndOwner, FALSE);
}

到::EnableWindow(m_ofn.hwndOwner, FALSE);就卡住了,
调式输出显示线程退出了。
线程 'Win32 线程' (0x1748) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x1f14) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x12fc) 已退出,返回值为 0 (0x0)。
线程 'Win32 线程' (0x1628) 已退出,返回值为 0 (0x0)。
求大神解答一下啊,困惑我好久了。
...全文
评论 9
收藏 已收藏
分享
返回顶部
renzhenshiduoa
VC/MFC 16,550 成员 421,606 内容