窗口操作

一、建立名为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. BZOJ1878 洛谷1972 HH的项链题解

    洛谷链接 BZOJ链接 看到这样不用修改的题目,应该佷容易就联想到了离线来处理. 我们发现若将询问按照r来排序,排完后每次对答案有贡献的仅是每个颜色最后出现的位置 我们用next[i]表示i处颜色之前 ...

  2. Nuxt.js打造旅游网站第3篇_登录页面的编写

    主要知识点: 1.使用vuex/store管理数据 2.登录注册逻辑 3.Nuxt的本地存储 1.登录页面 1.1登录页面布局 替换pages/user/login.vue的代码如下 <temp ...

  3. 【转载】 C++ stl string 操作

        总结一下C++中string的操作,来自〈C++ Primer〉第四版. 1. string对象的定义和初始化: 12345678910111213 string s1; //空串string ...

  4. javascript、jquery、AJAX总结 标签: javascriptjqueryajax 2016-01-23 10:25 2415人阅读

    其实在学习之前,就已经用上了js,jquery和ajax,不过当时不清楚这些的区别,就全都当成js来看,然后别人一说jquery,ajax都觉得好像很高级,等到自己学习的时候,倒是对这些更清楚了一点, ...

  5. mysql的root密码忘记解决方

    mysql的root密码忘记解决方 没关注第一步,直接从第二步开始,(可以参看上一篇,先停止mysql服务).然后从第二步开始. 我启动mysql用的命令是/etc/init.d/mysql  sta ...

  6. 如何用phpmyadmin导入大容量.sql文件,直接使用cmd命令进行导入

    很多使用php+mysql建站的站长朋友们,经常要用到phpMyAdmin数据库管理工具备份和恢复数据库,当站点运行很久的时候,MySQL数据库会非常大,当站点碰到问题时,需要使用phpMyAdmin ...

  7. vue init定制团队模板使用方法

    每次做项目都要自己搭建项目目录,或者换了公司就的重新搭建项目目录,是不是很麻烦呢?有没有想过一次性把项目目录搭建好,以后直接用呢?你首先想到的可能是复制自己原来的项目,然后删除.修改等等.然而有个更方 ...

  8. phpstudy一直使用php5.6版本一直“”“报错应用程序无法正常启动0xc000007b”,亲测可行

    http://www.php.cn/xiazai/gongju/1351 vc9和vc11-vc14运行库 2018-01-26 来源/作者:php中文网 «» 下载次数:7808 工具简介: php ...

  9. input标签前台实现文件上传

    值得注意的是:当一个表单里面包含这个上传元素的时候,表单的enctype必须指定为multipart/form-data,method必须指定为post,浏览器才会认识并正确执行.但是还有一点,浏览器 ...

  10. 条件随机场(CRF) - 3 - 概率计算问题

    声明: 1,本篇为个人对<2012.李航.统计学习方法.pdf>的学习总结,不得用作商用,欢迎转载,但请注明出处(即:本帖地址). 2,由于本人在学习初始时有很多数学知识都已忘记,所以为了 ...