• Win32 对话框(2)


    4.8 如何使基于对话框的程序不在任务栏中显示

    修改样式

    //删除WS_EX_APPWINDOW扩展风格
    ModifyStyleEx(WS_EX_APPWINDOW, 0);
    

    4.9 如何使对话框大小可调整

    调整属性面板的Border属性

    image

    4.10 如何扩展对话框的大小

    使用MoveWindow方法调整大小

    void CDemoDlg::OnTest() 
    {
        m_bExpand = !m_bExpand;
    
        //获得窗口大小
        CRect rect;
        GetWindowRect(rect);
    
        if (m_bExpand)
        {
            rect.SetRect(rect.left, rect.top, rect.right + 100, rect.bottom);
    
            SetDlgItemText(IDC_TEST, _T("<<"));
        }
        else
        {
            rect.SetRect(rect.left, rect.top, rect.right - 100, rect.bottom);
    
            SetDlgItemText(IDC_TEST, _T(">>"));
        }
    
        //设置窗口大小
        MoveWindow(rect);
    }
    

    4.11 如何使对话框居中显示

    调用CenterWindow方法

    //居中显示窗口
    CenterWindow();        
    

    4.12 如何使对话框不显示

    这个是啥…不懂…就是隐藏窗体,但不是销毁

    void CDemoDlg::OnWindowPosChanging(WINDOWPOS* lpwndpos) 
    {
        //删除SWP_SHOWWINDOW选项
        lpwndpos->flags &= ~SWP_SHOWWINDOW;
    
        CDialog::OnWindowPosChanging(lpwndpos);
    }
    

    4.13 如何使对话框全屏显示

    1. 修改样式
    2. 获取屏幕高度和宽度
    3. 设置位置和大小
    //删除WS_CAPTION和WS_BORDER风格
    ModifyStyle(WS_CAPTION, 0);
    ModifyStyle(WS_BORDER, 0);
    
    //获得屏幕长度和高度
     int cx = GetSystemMetrics(SM_CXSCREEN);
     int cy = GetSystemMetrics(SM_CYSCREEN);
    
    //设置对话框位置和大小
     SetWindowPos(NULL, 0, 0 , cx, cy, SWP_NOZORDER);
    
    CRect rect;
    GetDlgItem(IDC_TEXT)->GetWindowRect(rect);
    GetDlgItem(IDC_TEXT)->MoveWindow(cx / 2 - rect.Width() / 2, cy / 2, cx / 2, cy / 2);
    
  • 相关阅读:
    循环
    pl/sql小结
    poi编程
    Activiti工作流面试相关知识!
    工作流学习——Activiti流程变量五步曲
    工作流学习——Activiti流程实例、任务管理四步曲
    工作流学习——Activiti流程定义管理三步曲
    工作流学习——Activiti整体认识二步曲
    工作流学习——重要概念扫盲篇一步曲
    Activiti工作流数据库表详细介绍(23张表)
  • 原文地址:https://www.cnblogs.com/Clingingboy/p/1990803.html
Copyright © 2020-2023  润新知