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目录

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_窗口操作的更多相关文章
- uCGUI窗口操作要点
uCGUI窗口操作要点 1. 创建一个窗口的时候,会给此窗口发送“创建(WM_CREATE)”消息,从而执行它的回调函数:如果创建窗口的标志带有“可视标志(WM_CF_SHOW)”,那么在后续执行GU ...
- Structured-Streaming之窗口操作
Structured Streaming 之窗口事件时间聚合操作 Spark Streaming 中 Exactly Once 指的是: 每条数据从输入源传递到 Spark 应用程序 Exactly ...
- WPF: WpfWindowToolkit 一个窗口操作库的介绍
在 XAML 应用的开发过程中,使用MVVM 框架能够极大地提高软件的可测试性.可维护性.MVVM的核心思想是关注点分离,使得业务逻辑从 View 中分离出来到 ViewModel 以及 Model ...
- 使用cmd命令行窗口操作SqlServer
本文主要介绍使用windows下的使用cmd命令行窗口操作Sqlserver, 首先我们可以运行 osql ?/ ,这样就把所有可以通过CMD命令行操作sqlserver的命令显示出来 (有图有 ...
- streaming窗口操作
之前一直对窗口操作不太理解.认为spark streaming本身已经是分片计算,还需要窗口操作干啥. 窗口操作最为简单易懂的场景就是,在M时间间隔计算一次N时间内的热搜.当M=N的时候,就像上述所说 ...
- 项目总结03:window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口
window.open()方法用于子窗口数据回调至父窗口,即子窗口操作父窗口 项目中经常遇到一个业务逻辑:在A窗口中打开B窗口,在B窗口中操作完以后关闭B窗口,同时自动刷新A窗口(或局部更新A窗口)( ...
- JS打开新窗口,子窗口操作父窗口
<!--父窗口弹窗代码开始--> <script type="text/javascript"> function OpenWindow() { windo ...
- CKFinder 弹出窗口操作并设置回调函数
CKFinder 弹出窗口操作并设置回调函数 官方例子参考CKFinderJava-2.4.1/ckfinder/_samples/popup.html 写一个与EXT集成的小例子 Ext.defin ...
- js open窗口父子窗口操作
http://zhidao.baidu.com/question/61358246.html?an=0&si=1 js open窗口父子窗口操作 父窗口js代码: function ...
随机推荐
- 2019-5-25-win10-uwp-win2d-入门-看这一篇就够了
title author date CreateTime categories win10 uwp win2d 入门 看这一篇就够了 lindexi 2019-5-25 20:0:52 +0800 2 ...
- HDU-1160_FatMouse's Speed
FatMouse's Speed Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/32768 K (Java/Others) Sp ...
- 获得审批人的id
//sima 传入uid 得到所有上级部门负责人id private function partment($uid,$level='') { //传入部门id 返回本部门所有上级部门负责人的id $d ...
- JSTL的时间格式化
<%@ taglib uri="http://java.sun.com/jsp/jstl/fmt" prefix="fmt" %> 开头第一句必须上 ...
- poj 1085 Triangle War (状压+记忆化搜索)
Triangle War Time Limit: 1000MS Memory Limit: 65536K Total Submissions: 2685 Accepted: 1061 Desc ...
- Windows命令行创建计划任务
Windows上创建计划任务,尽管可以通过控制面板中的"计划任务"来创建,但是,有可能会报错: 这时,可以在cmd中使用命令行工具schtasks来创建.比如想要创建一个名为&qu ...
- Laravel / PHP 扩展包视频教程
https://laravel-china.org/courses/laravel-package 每周精选两个以上扩展包进行讲解,涵盖 PHP 和 Laravel 相关的最新.最热.最常用的扩展包. ...
- @loj - 2290@ 「THUWC 2017」随机二分图
目录 @description@ @solution@ @accepted code@ @details@ @description@ 一个左右各 n 个点的二分图,图中的边会按照一定的规律随机出现. ...
- 微信小程序 mode 的几种模式
mode="aspectFill" mode 有效值: mode 有 13 种模式,其中 4 种是缩放模式,9 种是裁剪模式. 模式 值 说明缩放 scaleToFill 不保持纵 ...
- 前端知识体系(二)http请求
https://blog.csdn.net/Lammonpeter/article/details/81358387 一.DNS解析 首先DNS域名系统的作用是将输入的url域名解析成ip地址以方便对 ...