码迷,mamicode.com
首页 > 其他好文 > 详细

学习:窗口操作常用记录

时间:2020-02-08 16:03:37      阅读:64      评论:0      收藏:0      [点我收藏+]

标签:app   code   com   两种   直接   top   ESS   enter   getch   

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

消息:WM_SYSCOMMAND

/*
D:\Visual_Studio_repos\MFC\8*/
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);

学习:窗口操作常用记录

标签:app   code   com   两种   直接   top   ESS   enter   getch   

原文地址:https://www.cnblogs.com/zpchcbd/p/12283431.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!