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 ...
随机推荐
- css技巧——垂直居中
1.父元素确定的单行垂直居中 通过设置父元素的 height 和 line-height 高度一致来实现的. 2.父元素确定的多行垂直居中 父元素高度确定的多行文本.图片.块状元素的竖直居中的方法有两 ...
- wepy ——$apply
1.说明 在异步函数中更新数据的时候,必须手动调用 $apply 方法. 2.代码和效果 // html <button type="primary" plain=" ...
- @bzoj - 2395@ [Balkan 2011]Timeismoney
目录 @description@ @solution@ @accepted code@ @details@ @description@ 有n个城市(编号从0..n-1),m条公路(双向的),从中选择n ...
- android service中stub作用是什么?
AIDL(android 接口描述语言)是一个IDL语言,它可以生成一段代码,可以使在一个android设备上运行的两个进程使用内部通信进程进行交互.如果你需要在一个进程中(例如:在一个Activit ...
- hdu 4128 Running relay (线性规划转半平面交)
Problem - 4128 对偶线性规划转半平面交,这题的正解O(nlogn)解法,目前网上没有找到这样的正解. 原来的不等式组, sigma{-si*xi}>=-W+d*sigma{si} ...
- Python深入:01内存管理
在Python中,一切都是指针. 一:对象三特性 所有的Python对象都有三个特性:身份,类型和值. 身份:每一个对象都有一个唯一的身份标识,任何对象 ...
- 一条数据的漫游 -- X-Engine SIGMOD Paper Introduction
大多数人追寻永恒的家园(归宿),少数人追寻永恒的航向. ----瓦尔特.本雅明 背景 X-Engine是阿里数据库产品事业部自研的OLTP数据库存储引擎,作为自研数据库POLARDB X的存储引擎,已 ...
- 如何编程实现快速获取一个整型数中的bit流中1的个数
int one_in_unsigned(unsigned n) { n =(n & ) & 0x55555555); n =(n & ) & 0x33333333); ...
- Java Annotation详解(一): 理解和使用Annotation
JDK1.5之后,引入了元数据的概念,也就是Annotation(注释),其实它是代码里的特殊标记,这些标记可以再编译.类加载.运行时被读取,并执行相应的处理. 元数据的作用: 如果要对于元数据的作用 ...
- H3C NAPT