VC关闭窗口退出

    xiaoxiao2021-08-22  73

    1、OnOK()或OnCancel()//只对窗口程序有用

    2、PostQuitMessage(0);//最常用

    3、ExitProcess(0); 4、发送WM_CLOSE消息,如:

         SendMessage(WM_CLOSE,   0,   0);

           5、TerminateProcess

    6、CDialog.Destroy()

    7、exit(0);

    8、 void CMainFrame::OnClose()      {           // TODO: Add your message handler code here and/or call default           if (MessageBox("确定要退出吗?","提示",MB_YESNO|MB_DEFBUTTON2)==IDYES)           {                  CFrameWnd::OnClose();           }      }

    如果是关闭其它程序

    // 一种方法,通过窗口文字 HWND hWnd = ::FindWindow(NULL, _T("MSDN Library Visual Studio 6.0")); // 注: 这个是窗口的标题文字  if (NULL != hWnd) {        ::SendMessage(hWnd, WM_CLOSE, 0, 0);    } //另外一种方法,进程ID DWORD id_num; HWND hWnd = ::FindWindow(NULL, _T("MSDN Library Visual Studio 6.0"));   GetWindowThreadProcessId(hWnd, &id_num); //注意:第二个参数是进程的ID,返回值是线程的ID。 HANDLE hd = OpenProcess(PROCESS_ALL_ACCESS,FALSE, id_num); TerminateProcess(hd, 0); 如果窗口文字是会变的,可以使用FindWindow的第一个参数:应用程序的类名。 可以通过VC提供的Spy++这个软件获得ClassName。 从开始菜单->MS 6.0 Tools->spy++,找出你要关闭的程序,比如说spy++,双击它,看Class选项的Class Name是Afx:400000:8:10011:0:15503db。 然后: HWND hWnd = ::FindWindow(_T("Afx:400000:8:10011:0:15503db"), NULL);   GetWindowThreadProcessId(hWnd, &id_num); //注意:第二个参数是进程的ID,返回值是线程的ID。 HANDLE hd = OpenProcess(PROCESS_ALL_ACCESS,FALSE, id_num); TerminateProcess(hd, 0);

    转载请注明原文地址: https://ju.6miu.com/read-676901.html

    最新回复(0)