MFC枚举所有窗体,并向打开的窗体发送关闭消息
来源:互联网 发布:送外卖的软件 编辑:程序博客网 时间:2024/05/29 17:19
源代码:http://download.csdn.net/detail/nuptboyzhb/4162747
枚举窗体的信息
1. 新建一个基于单文档的应用程序,注意将View类的父类设置为CListView,并在PreCreateWindow函数中设置它的风格:
cs.style |= LVS_REPORT | LVS_NOSORTHEADER;//设置列表视为报表格式
2. 在OnInitialUpdate消息响应函数中,增加列的标题:
CListCtrl& lc = GetListCtrl();//获得列表视图的控制
lc.InsertColumn(0, _T("窗口句柄"),LVCFMT_LEFT,180);
lc.InsertColumn(1, _T("窗口类"),LVCFMT_LEFT,180,1);
lc.InsertColumn(2, _T("窗口标题"),LVCFMT_LEFT,200,1);
lc.InsertColumn(3, _T("窗口风格"),LVCFMT_LEFT,100,1);
lc.InsertColumn(4, _T("窗口位置大小(屏幕坐标)"),LVCFMT_LEFT,210,1);
3. 新增一个菜单项,点击菜单,即执行获取函数,编辑代码如下:
CListCtrl& lc = GetListCtrl();
lc.DeleteAllItems();
EnumWindows(MyEnumWindowsProc, (LPARAM)this);//遍历窗口程序
注意:第一个参数是回调函数,第二个参数是回调函数的参数;回调函数应事先声明,
4. 编写回调函数;
BOOL CALLBACK CEnumWindowsProcView::MyEnumWindowsProc(HWND hwnd,
LPARAM lParam)
{
CEnumWindowsProcView* pView = (CEnumWindowsProcView*)lParam;
CListCtrl& lc =pView->GetListCtrl();
int iItem=-1;
DWORD dwStyle = GetWindowLong(hwnd, GWL_STYLE);//获得窗体的风格
CString s;
s.Format("主窗口(%04X)",hwnd);
//窗口句柄
iItem = lc.InsertItem(lc.GetItemCount(),s);
CWnd* pWnd = CWnd::FromHandle(hwnd);
// 窗口类名
::GetClassName(hwnd, s.GetBuffer(256), 256);
int iSubitem = 1;
lc.SetItemText(iItem,iSubitem++,s);
// 窗口标题
pWnd->GetWindowText(s);
lc.SetItemText(iItem,iSubitem++,s);
CString str;
// 窗口风格
str.Format(_T("0x%x"),dwStyle);
lc.SetItemText(iItem,iSubitem++,str);
CRect rect;
::GetWindowRect(hwnd,&rect);
//窗口大小及位置
str.Format(_T("(x0=%d,y0=%d,x1=%d,y1=%d)"),rect.left,rect.top,rect.right,rect.bottom);
lc.SetItemText(iItem,iSubitem++,str);
flag++;
return TRUE;
}
向窗体发送关闭消息
主要思路,就是对枚举得到的窗口进行过滤,用SendMessage函数,发送WM_CLOSE消息;
- MFC枚举所有窗体,并向打开的窗体发送关闭消息
- c#向MFC窗体发送消息
- 发送消息关闭窗体
- 向鼠标所在的窗体发送消息
- 窗体的打开,关闭。
- 关闭窗体的同时打开另一个窗体
- C#枚举所有的窗体
- vb.net 关闭所有已经打开的窗体 包括启动窗体
- MFC如何自定义消息与在线程中向主窗体控件发送数据
- c#实现关闭当前窗体并打开另一个已经创建的窗体
- C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
- VC++ 获取窗体句柄,并发送键盘消息(这种方法也可以打开某些应用程序)
- 关闭窗体消息过程
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- C# WinForm 关闭登陆窗体,打开主窗体的实现
- C# WinForm 关闭登陆窗体,打开主窗体的实现.
- 双击消息打开窗体
- 关闭除主程序以外的所有窗体
- SourceInsight设置
- 不再需要借助卫星,地球任意两点进行通信将成为可能
- linux环境下常见错误分析
- 邮箱smtp服务器及端口收集
- NDK打包的ANT脚本(包含引入so文件)
- MFC枚举所有窗体,并向打开的窗体发送关闭消息
- QT学习笔记----Pushbutton,label控件应用
- Win32编程基础
- sudo 的配置详解
- SQL Server数据库六种数据移动方法
- Mastering Regular Expresstion notes(1)
- PL/SQL中存储过程int和out的用法
- access(判断是否具有存取文件的权限)
- 深入浅出Node.js(五):初探Node.js的异步I/O实现