zoukankan      html  css  js  c++  java
  • 025.MFC_窗口操作

    窗口操作

    一、建立名为dialogOp 的mfc 工程 ,添加9个button 和1个check box组件,并按如图修改caption属性。

    最大化窗口

    双击最大化button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton1()
    {
    // TODO: 在此添加控件通知处理程序代码
    SendMessage(WM_SYSCOMMAND,SC_MAXIMIZE);
    }

    最小化窗口

    双击最小化button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton2()
    {
    // TODO: 在此添加控件通知处理程序代码
    SendMessage(WM_SYSCOMMAND,SC_MINIMIZE);
    }

    关闭窗口

    方法一:

    双击还原button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton3()
    {
    // TODO: 在此添加控件通知处理程序代码
    SendMessage(WM_SYSCOMMAND,SC_RESTORE);
    }

    方法二(弹框确认):参照如图步骤操作进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnClose()
    {
    // TODO: 在此添加消息处理程序代码和/或调用默认值
    if(IDYES == MessageBox(_T("确定关闭窗口?"),NULL,MB_YESNO))
    {
    CDialogEx::OnClose();
    }
    }

    设置窗口大小和位置

    方法一:双击大小位置1button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton5()
    {
    // TODO: 在此添加控件通知处理程序代码
    //其实坐标x ,y,长,宽,前后顺序
    SetWindowPos(NULL,100,100,400,300,SWP_NOZORDER);
    }

    方法二:双击大小位置2button,进入dialogOpDlg.cpp添加

     void CdialogOpDlg::OnBnClickedButton6()
    {
    // TODO: 在此添加控件通知处理程序代码
    //其实坐标x ,y,长,宽
    MoveWindow(0,0,600,400);
    }

    居中显示窗口

     双击居中button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton7()
    {
    // TODO: 在此添加控件通知处理程序代码
    CenterWindow();
    }

    顶层显示窗口

    参照如图步骤进入dialogOpDlg.cpp添加

     

    void CdialogOpDlg::OnBnClickedCheck1()
    {
    // TODO: 在此添加控件通知处理程序代码
    BOOL bTop = static_cast<CButton *>(GetDlgItem(IDC_CHECK1))->GetCheck();
    if(bTop)
    ::SetWindowPos(m_hWnd,HWND_TOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//当前窗口句柄,顶层,x,y,长,宽,不改变位置和大小
    else
    ::SetWindowPos(m_hWnd,HWND_NOTOPMOST,0,0,0,0,SWP_NOMOVE|SWP_NOSIZE);//当前窗口句柄,顶层,x,y,长,宽,不改变位置和大小
    }

    设置窗口图标

    一、按照如下步骤将icon添加到res目录

    ico下载

     

    2、参照如下步骤将ico文件添加到资源视图Icon中

    3、进入dialogOpDlg.cpp添加

    BOOL CdialogOpDlg::OnInitDialog()
    {
    CDialogEx::OnInitDialog();

    // 将“关于...”菜单项添加到系统菜单中。

    // IDM_ABOUTBOX 必须在系统命令范围内。
    ASSERT((IDM_ABOUTBOX & 0xFFF0) == IDM_ABOUTBOX);
    ASSERT(IDM_ABOUTBOX < 0xF000);

    CMenu* pSysMenu = GetSystemMenu(FALSE);
    if (pSysMenu != NULL)
    {
    BOOL bNameValid;
    CString strAboutMenu;
    bNameValid = strAboutMenu.LoadString(IDS_ABOUTBOX);
    ASSERT(bNameValid);
    if (!strAboutMenu.IsEmpty())
    {
    pSysMenu->AppendMenu(MF_SEPARATOR);
    pSysMenu->AppendMenu(MF_STRING, IDM_ABOUTBOX, strAboutMenu);
    }
    }

    // 设置此对话框的图标。当应用程序主窗口不是对话框时,框架将自动
    // 执行此操作
    SetIcon(m_hIcon, TRUE); // 设置大图标
    //SetIcon(m_hIcon, FALSE); // 设置小图标
    HICON hIcon = AfxGetApp()->LoadIcon(IDI_ICON);
    SetIcon(hIcon,FALSE);
    // TODO: 在此添加额外的初始化代码

    SetWindowText(_T("my title")); //设置初始标题

    return TRUE; // 除非将焦点设置到控件,否则返回 TRUE
    }

    获取和设置窗口标题

     双击修改标题button,进入dialogOpDlg.cpp添加

    void CdialogOpDlg::OnBnClickedButton8()
    {
    // TODO: 在此添加控件通知处理程序代码
    SetWindowText(_T("QQQQ"));
    }

    双击读取标题button,进入dialogOpDlg.cpp添加
    void CdialogOpDlg::OnBnClickedButton9()
    {
    // TODO: 在此添加控件通知处理程序代码
    CString s;
    GetWindowText(s);
    AfxMessageBox(s);
    }

  • 相关阅读:
    电话聊天狂人
    PAT 1080. MOOC期终成绩
    PAT 1079. 延迟的回文数
    [转载]matlab 中序列求极值的方法
    [转载][转]Matlab-寻找峰值函数
    [转载]Kirchhoff Migration Impulse Response
    Envelope Extraction Using the Analytic Signal
    [转载]地震动的挑选
    C笔记
    Git常用有用命令
  • 原文地址:https://www.cnblogs.com/Malphite/p/10835444.html
Copyright © 2011-2022 走看看