窗口操作

一、建立名为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);
}

025.MFC_窗口操作的更多相关文章

  1. uCGUI窗口操作要点

    uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...

  2. Structured-Streaming之窗口操作

    Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...

  3. WPF: WpfWindowToolkit 一个窗口操作库的介绍

    在 XAML 应用的开发过程中,使用MVVM 框架能够极大地提高软件的可测试性.可维护性.MVVM的核心思想是关注点分离,使得业务逻辑从 View 中分离出来到 ViewModel 以及 Model ...

  4. 使用cmd命令行窗口操作SqlServer

    本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql  ?/   ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...

  5. streaming窗口操作

    之前一直对窗口操作不太理解.认为spark streaming本身已经是分片计算,还需要窗口操作干啥. 窗口操作最为简单易懂的场景就是,在M时间间隔计算一次N时间内的热搜.当M=N的时候,就像上述所说 ...

  6. 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口

    window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...

  7. JS打开新窗口,子窗口操作父窗口

    <!--父窗口弹窗代码开始--> <script type="text/javascript"> function OpenWindow() { windo ...

  8. CKFinder 弹出窗口操作并设置回调函数

    CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.defin ...

  9. js open窗口父子窗口操作

    http://zhidao.baidu.com/question/61358246.html?an=0&si=1 js open窗口父子窗口操作     父窗口js代码:   function ...

随机推荐

  1. 2019-5-25-win10-uwp-win2d-入门-看这一篇就够了

    title author date CreateTime categories win10 uwp win2d 入门 看这一篇就够了 lindexi 2019-5-25 20:0:52 +0800 2 ...

  2. HDU-1160_FatMouse's Speed

    FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Sp ...

  3. 获得审批人的id

    //sima 传入uid 得到所有上级部门负责人id private function partment($uid,$level='') { //传入部门id 返回本部门所有上级部门负责人的id $d ...

  4. JSTL的时间格式化

    <%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 开头第一句必须上 ...

  5. poj 1085 Triangle War (状压+记忆化搜索)

    Triangle War Time Limit: 1000MS   Memory Limit: 65536K Total Submissions: 2685   Accepted: 1061 Desc ...

  6. Windows命令行创建计划任务

    Windows上创建计划任务,尽管可以通过控制面板中的"计划任务"来创建,但是,有可能会报错: 这时,可以在cmd中使用命令行工具schtasks来创建.比如想要创建一个名为&qu ...

  7. Laravel / PHP 扩展包视频教程

    https://laravel-china.org/courses/laravel-package 每周精选两个以上扩展包进行讲解,涵盖 PHP 和 Laravel 相关的最新.最热.最常用的扩展包. ...

  8. @loj - 2290@ 「THUWC 2017」随机二分图

    目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个左右各 n 个点的二分图,图中的边会按照一定的规律随机出现. ...

  9. 微信小程序 mode 的几种模式

    mode="aspectFill" mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式. 模式 值 说明缩放 scaleToFill 不保持纵 ...

  10. 前端知识体系(二)http请求

    https://blog.csdn.net/Lammonpeter/article/details/81358387 一.DNS解析 首先DNS域名系统的作用是将输入的url域名解析成ip地址以方便对 ...