• 学习:窗口操作常用记录


    窗口最大/小/正常化操作:

    消息:WM_SYSCOMMAND

    /*
    D:Visual_Studio_reposMFC8
    */
    SC_MAXIMIZE (or SC_ZOOM)   Maximize the CWnd object.
    SC_MINIMIZE (or SC_ICON)   Minimize the CWnd object.
    SC_RESTORE   Restore window to normal position and size.
    
    	SendMessage(WM_SYSCOMMAND, SC_MAXIMIZE,0); //最大化
    	SendMessage(WM_SYSCOMMAND, SC_MINIMIZE, 0); //最小化
    	SendMessage(WM_SYSCOMMAND, SC_RESTORE, 0); //正常化
    

    窗口关闭

    SC_CLOSE   Close the CWnd object
    afx_msg void OnClose( );
    

    两种方法都可以

    void CMy8Dlg::OnBnClickedButton4()
    {
    	SendMessage(WM_SYSCOMMAND,SC_CLOSE, 0);
    }
    
    
    void CMy8Dlg::OnClose()
    {
    	// TODO: 在此添加消息处理程序代码和/或调用默认值
    	if (AfxMessageBox(_T("是否要关闭窗口?"), MB_YESNO,NULL) == IDYES) {
    		CDialogEx::OnClose();
    	}
    }
    
    

    窗口大小位置调动:

    SetWindowPos
    MoveWindow
    

    两种方法:

    	SetWindowPos(NULL, 10, 10, 0, 0, SWP_NOSIZE); //最后一个参数 大小不变 所以就忽略第三和第四参数
    
    	MoveWindow(10, 10, 100, 100);
    

    ps:如果位置要居中直接CenterWindow()


    窗口置顶:

    void CMy8Dlg::OnBnClickedCheck1()
    {
    	CButton* cb = (CButton *)GetDlgItem(IDC_CHECK1);
    	if (cb->GetCheck()) {
    		//如果单选框被选中的话 那么就保持置顶操作
    		::SetWindowPos(m_hWnd, HWND_TOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
    	}
    	else {
    		::SetWindowPos(m_hWnd, HWND_NOTOPMOST, 0, 0, 0, 0, SWP_NOSIZE | SWP_NOMOVE);
    	}
    }
    

    加载应用程序图标:

    OnInitDialog中编写:

    	HICON icon =  AfxGetApp()->LoadIcon(IDI_ICON1); //通过获得应用的程序theApp对象的地址去调用LoadIcon
    	SetIcon(icon,FALSE);
    
  • 相关阅读:
    【蜕变之路】第20天 UUID和时间戳的生成 (2019年3月10日)
    3.EntityFramework的多种记录日志方式,记录错误并分析执行时间过长原因(系列4)
    reactnative资源
    代码
    模板匹配模型、原型模型和区别性特征模型各自如何解释汉字的知觉
    mysqldatadir 转移
    mysql主从设置windows
    心灵鸡汤
    测试的发现遗漏BUG的做法
    汉字模式匹配的过程
  • 原文地址:https://www.cnblogs.com/zpchcbd/p/12283431.html
Copyright © 2020-2023  润新知