各位大侠,我开发了一个图形化的应用程序,在这个程序的doc里面有一个读写数据库的线程,前台界面根据读取的数据库显示一些信息,现在我想实现当服务器上mysql服务关闭了或是断网了,在读写线程中关闭整个应用程序,请问如何实现?
解决方案 »
- 如何用DbgPrint()输出错误信息?
- 为了这个该死SOCKET我都被弄死了
- 请问如何获得当前视图是哪一个?
- 关于control 和 container间通信的问题
- 函数中能否在正式return之前,预设返回值呢??
- 刚刚用向导建好一个程序,添加一个CRecordView类就提示不能实例化抽象类和没有合适的默认构造函数可用
- 请问谁知道《Visual C++ MFC编程实例》和《Visual C++ MFC扩展编程实例》的光盘实例的下载?
- 简单问题,帮忙看一下。在线等待...
- 高分请问使用socket进行网络编程问题
- 孙鑫VC中第一个例子编译链接时出错,不是字符设置的问题
- 关于将应用程序转成.dll文件
- 编写的程序(win32或MFC)都无法在WinPE环境下运行?
采用::AfxGetMainWnd()->DestoryWindow()编译能通过,但是运行时报错,难道线程的LP参数必须准话为主窗口的指针吗?因为我把他转化为了Doc的指针?
AfxBeginThread(ThreadProc, (LPVOID)GetSafeHwnd());UINT __cdecl ThreadProc(LPVOID lParam)
{
HWND hWnd = (HWND)lParam;
ASSERT(hWnd);
.... PostMessage(hWnd, WM_CLOSE, 0, 0);
return 0;
}
由于AfxBeginThread(ThreadProc, this);是写在这个项目的Doc类里面的,传得是this指针,因为在doc类成员里面有一个控制互斥访问的成员变量,我在线程里面必须要用,那如果我写成AfxBeginThread(ThreadProc, (LPVOID)::AfxGetMainWnd()->GetSafeHwnd());怎么在线程里面得到该Doc的指针呢?请问我把主窗口的HWND窗口句柄和Doc指针封装成结构体传给线程,这样可以吗?
TO:VisualEleven
刚刚在网上又看了一下,有的说在线程里面可以使用::AfxGetApp()->GetMainWnd()或是AfxGetApp()->m_pMainWnd->m_hWnd,但是我运行时会出错,跟踪了一下,AfxGetApp()可以获得一个值,但是再往后就为NULL呢,求解释?
PS:我一开始直接在线程中使用::AfxGetMainWnd()也能获得一个值,不是为NULL的,就是在运行的时候报错。奇怪!!!!