主要是看护某个进程退出后,然后在自动启动该程序。
(创建的项目是对话框的。(其实不显示,写服务程序也可以解决))
1.如何隐藏主界面
OnInitDialog()//函数中添加如下代码 MoveWindow(-10,-10,0,0); ShowWindow(SW_HIDE); ModifyStyleEx(WS_EX_APPWINDOW, WS_EX_TOOLWINDOW);
afx_msg void OnGetMinMaxInfo(MINMAXINFO* lpMMI);
.cpp文件中增加:
ON_WM_GETMINMAXINFO()
同时相应函数:添加代码:
void C**Dlg::OnGetMinMaxInfo(MINMAXINFO* lpMMI) { // TODO: 在此添加消息处理程序代码和/或调用默认值 lpMMI->ptMaxSize.x = 0; lpMMI->ptMaxSize.y = 0; lpMMI->ptMinTrackSize.x = -1; lpMMI->ptMinTrackSize.y = -1; lpMMI->ptMaxTrackSize.x = -3; lpMMI->ptMaxTrackSize.y = -3; CDialog::OnGetMinMaxInfo(lpMMI); }
同样方法,添加:OnSize()
<pre name="code" class="cpp"><pre name="code" class="cpp">void C**Dlg::OnSize(UINT nType, int cx, int cy) { // TODO: 在此处添加消息处理程序代码 if(nType == SIZE_MINIMIZED) { ShowWindow(SW_MAXIMIZE); } else { CDialog::OnSize(nType, cx, cy); } }
同时:
<pre name="code" class="cpp">LRESULT C**Dlg::WindowProc(UINT message, WPARAM wParam, LPARAM lParam) { // TODO: 在此添加专用代码和/或调用基类 if(message == WM_SYSCOMMAND && wParam == SC_MINIMIZE) { ShowWindow(SW_MAXIMIZE); return 0; } if (message == WM_SYSCOMMAND && wParam == SC_MAXIMIZE) { return 0; } if (message == WM_SYSCOMMAND && wParam==SC_CLOSE) { ShowWindow(SW_MAXIMIZE); return 0; } return CDialog::WindowProc(message, wParam, lParam); }
这样在任务管理器,应用程序里面,最大化,最小化该看护程序,都不会显示出界面来。