当用户点击用户界面的某一按钮的时候,通知辅助线程进行事务处理,需要消耗一定的时间。 这个时候希望弹出一个对话框,告知用户正在处理。
这样怎么实现呢?
我自己从CDialog 派生了一个含有进度条的类 CProgDlg theDlg;
但是无法显示出来 线程里面能不能生成对话框阿? 即: CProgDlg theDlg;
theDlg.modal();
这样怎么实现呢?
我自己从CDialog 派生了一个含有进度条的类 CProgDlg theDlg;
但是无法显示出来 线程里面能不能生成对话框阿? 即: CProgDlg theDlg;
theDlg.modal();
解决方案 »
- VC++ 6.0 无法安装
- 关于串口通信CSerialPort类WriteToPort的问题
- MFC 图片上加水印怎么做啊~~?
- [投票]09年薪资变化
- 有没有vc开发的开源的IDE? 我在开发编译器,需要IDE做界面,谢谢
- 求一个完整的SOCKET通讯例子,分数不够再加!!!!!!!!!!!!!!
- 用GDI在创建的一个Bitmap上作的图形,可以直接存成JPG格式的么?
- 关于文档视图结构
- 请问各位VC高手,VC做哪方面最有钱途啊????????????
- 如何在CList控件上处理鼠标右键的消息?
- 问个简单问题,怎么从socket发送的包中分析出应用程序使用的协议?
- unresolved external symbol _text_search_new????????
theDlg.modal(); //必然等到这个函数返回之后,它下面的代码才能接着执行你可以将线程写进该对话框类内部,在 OnInitilDlg ( )中启动线程, 然后在线程中访问对话框中的进度条,控制它变化
这几天没能上网
我按照大家的 建议 在线程里面使用了 非模式对话框 UINT CMobileComm::MobileThread(LPVOID lpParam)
{
...........
ProgessDlg = new CProgDlg( );
AfxMessageBox("对话框1");
if( ProgessDlg->Create(IDD_MY_PROGDLG, p->m_powner) == TRUE )
AfxMessageBox("对话框2");
ProgessDlg->ShowWindow(SW_SHOW);
...........
}p->m_powner是对话框(进度条对话框)的父窗口 我把它指向程序的CMainFrame但是每次显示的时候 对话框总是在 程序的左上角显示出来 不知道怎么样调整它的位置还有 每次运行的时候都出这个错误:
Debug Assertion Failed!
File: wincore.cpp
line: 883 我看了 wincore.cpp的883行 是这个语句:
ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
(p = pMap->LookupTemporary(m_hWnd)) != NULL);向请教一下大家这是怎么回事?
这个我已经实现过了但是在debug模式下面 总是弹出这个Assert 错误的窗口
不知道怎么回事
线程中
非模态对话框 create的时候
父窗口的指针 应该怎么指定啊? 有什么特别的要求吗?
(p = pMap->LookupTemporary(m_hWnd)) != NULL);
表明你使用了其他线程创建的MFC对象
参见http://blog.csdn.net/jiangsheng/archive/2004/01/05/3797.aspx
'project'->'Add to project'->'Components and Controls'->'Visual C++ Components'->'Progress Dialog'还是单线实现,一般的应用足矣.
ASSERT错误:
还有 每次运行的时候都出这个错误:
Debug Assertion Failed!
File: wincore.cpp
line: 883 我看了 wincore.cpp的883行 是这个语句:
ASSERT((p = pMap->LookupPermanent(m_hWnd)) != NULL ||
(p = pMap->LookupTemporary(m_hWnd)) != NULL);向请教一下大家这是怎么回事?
这里面说线程里面不能传递mfc 对象, 但是句柄是可以的 是不是说 我在线程里面创建 非模态的对话框的时候 不能将对话框的父窗口指定为 主界面线程的框架对象呢?
我将父窗口指定为 NULL 则没有错误
但是这个对话框 不受控制 还可以操做主界面 不能起到阻塞主界面的作用
你可以用CWnd::FromHandle来创建一个本线程内的句柄对象映射
不好意思,没看全,没看到你上面已经说了我还问:$