• MFC记忆窗口位置


    1. 用 WINDOWPLACEMENT(可以记录最大化、最小化、正常窗口位置)

    BOOL CtestDialogDlg::ReadWndPosition()
    {
        WINDOWPLACEMENT wp;
        CFile file;
        if (!file.Open(_T("testDialog.position"), CFile::modeRead))
            return FALSE;
        UINT nByteRead = file.Read(&wp, sizeof(wp));
        if (sizeof(wp) != nByteRead)
            return FALSE;
        if(!::SetWindowPlacement(this->GetSafeHwnd(), &wp))
            return FALSE;
        file.Close();
        return TRUE;
    }
    
    
    BOOL CtestDialogDlg::WriteWndPosition()
    {
        WINDOWPLACEMENT wp = { sizeof(wp) };
        ::GetWindowPlacement(this->GetSafeHwnd(), &wp);
        CFile file;
        if (!file.Open(_T("testDialog.position"), CFile::modeCreate | CFile::modeWrite))
            return FALSE;
        file.Write(&wp, sizeof(wp));
        file.Close();
        return TRUE;
    }
    //然后在OnInitDialog()中调用 ReadWndPosition()
    //在OnDestroy()中调用 WriteWndPosition()
    typedef struct tagWINDOWPLACEMENT {
        UINT  length;
        UINT  flags;
        UINT  showCmd;
        POINT ptMinPosition;
        POINT ptMaxPosition;
        RECT  rcNormalPosition;
    } WINDOWPLACEMENT;
    // 使用时,一般先把 length=sizeof(WINDOWPLACEMENT)
    
    正常窗口关闭时,length=44,flags=0,showCmd=1,ptMinPosition=ptMaxPosition={-1,-1},rcNormalPosition=关闭时的窗口位置大小。
    最小化关闭时,length=44,flags=0,showCmd=2,ptMinPosition={-3200,-3200},ptMaxPosition={-1,-1},rcNormalPosition=最小化前窗口的位置大小。
    最大化关闭时,length=44,flags=2,showCmd=3,ptMinPosition=ptMaxPosition={-1,-1},rcNormalPosition=最大化前窗口的位置大小。
    
    showCmd 的取值 SW_SHOWNORMAL=1  SW_HIDE=0  SW_SHOWMAXIMIZED=3  SW_SHOWMINIZED=2
    

    常记溪亭日暮,沉醉不知归路。兴尽晚回舟,误入藕花深处。争渡,争渡,惊起一滩鸥鹭。

    昨夜雨疏风骤,浓睡不消残酒。试问卷帘人,却道海棠依旧。知否?知否?应是绿肥红瘦。
  • 相关阅读:
    返回一个整数数组中最大子数组的和(数组头尾连接)
    场景调研(补)
    《浪潮之巅》读书笔记3
    《软件工程》课程改进意见
    【每日scrum】第一次冲刺day6
    【每日scrum】第一次冲刺day5
    【每日scrum】第一次冲刺day4
    【每日scrum】第一次冲刺day3
    【每日scrum】第一次冲刺day2
    【每日scrum】第一次冲刺day1
  • 原文地址:https://www.cnblogs.com/htj10/p/12169081.html
Copyright © 2020-2023  润新知