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

  • 相关阅读:
    257. Binary Tree Paths
    324. Wiggle Sort II
    315. Count of Smaller Numbers After Self
    350. Intersection of Two Arrays II
    295. Find Median from Data Stream
    289. Game of Life
    287. Find the Duplicate Number
    279. Perfect Squares
    384. Shuffle an Array
    E
  • 原文地址:https://www.cnblogs.com/Malphite/p/10835444.html
Copyright © 2011-2022 走看看