• 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);

  • 相关阅读:
    Unix环境编程之文件IO
    navicat 导出查询结果
    Java 原子类 java.util.concurrent.atomic
    AtomicBoolean介绍
    ExecutorService常用方法和newFixedThreadPool创建固定大小的线程池
    ExecutorService与Executors例子的简单剖析
    tomcat6版本虚拟目录详细配置
    生产者与消费者模型案例
    如何设计一个LRU Cache
    在MVC模式下通过Jqgrid表格操作MongoDB数据
  • 原文地址:https://www.cnblogs.com/smh2015/p/7473511.html
Copyright © 2020-2023  润新知