mfc标题栏 菜单 退出 关机 重启
隐藏标题栏
int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CFrameWnd::OnCreate(lpCreateStruct) == -1)
return -1;
// TODO: Add your specialized creation code here
//去掉标题栏及其他样式
SetWindowLong(this->m_hWnd,GWL_STYLE,0);
//去掉边框及其他样式
/// SetWindowLong(this->m_hWnd,GWL_EXSTYLE,0);
return 0;
}
隐藏菜单
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
// TODO: Modify the Window class or styles here by modifying
// the CREATESTRUCT cs
cs.hMenu = NULL;//即 菜单句柄赋值为空
return TRUE;
}
退出
每次自己写程序退出的函数时,总要找好长时间。这次搜集了一些,记录下来。不端更新下去
1、PostQuitMessage(0);//最常用
2、PostMessage(WM_QUIT,0,0);//最常用
3、
::SendMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用
::PostMessage(AfxGetMainWnd()->m_hWnd,WM_CLOSE,0,0);//最常用
4、 ExitProcess(0);//注意使用时先释放分配的内存,以免造成内存泄露
exit(0) ;//正常终止程序; exit(非0)非正常终止程序
5、向主窗口发送WM_CLOSE消息
SendMessage(WM_CLOSE);
6、如果要在其它类关闭应用程序,则
AfxGetMainWnd->SendMessage(WM_CLOSE);
本文转自:http://blog.csdn.NET/usopp_dream/article/details/7947329
关机 重启
转自:http://blog.csdn.net/qq_18297675/article/details/51005370
1.提权
BOOL AdjustPrivilege() { BOOL bRet = FALSE; TOKEN_PRIVILEGES tp = { 0 };//令牌权限结构 HANDLE hToken = NULL;//令牌句柄 do { //打开当前进程令牌,并且获取它 //令牌权限修改和查询 if(!OpenProcessToken(GetCurrentProcess(),TOKEN_ADJUST_PRIVILEGES| TOKEN_QUERY,&hToken)) break; //获取关机注销重启的LUID(Locally Unique Identifier),局部唯一标识 if (!LookupPrivilegeValue(NULL,SE_SHUTDOWN_NAME,&tp.Privileges[0].Luid)) break; tp.PrivilegeCount = 1;//修改权限的个数 tp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;//激活SE_SHUTDOWN_NAME这个权限 //提升权限//FALSE表示可以修改权限//把需要修改的权限传进来 if(!AdjustTokenPrivileges(hToken,FALSE,&tp,0,(PTOKEN_PRIVILEGES)NULL,0)) break; bRet = TRUE; } while (FALSE); if (hToken) CloseHandle(hToken); return bRet; }
2.关机
AdjustPrivilege();
ExitWindowsEx(EWX_SHUTDOWN,0);
3.重启
AdjustPrivilege();
ExitWindowsEx(EWX_REBOOT, 0);