【Demo 0024】查找顶层窗体及控件
2011-08-14 21:16
274 查看
正如前面的几节中我们讲述的, Windows是由一系列的窗体组合而成,而Windows在对一个窗体操作前需要得到这个窗体的句柄,那如何读取一个窗休的句柄呢,Windows提供了许多的函数来达到这样的目的,今天我们先了学习最常用和直接的二个方法:
(一) 函数声明
HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow );
获取与窗体的类名和窗体名相匹配的窗休句柄,此函数在搜索子窗体时以指定的子窗体句柄开始进行, 当后三参数都为NULL时返回此窗体的第一个子窗体
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName );
获取与窗体的类名和窗体名相匹配的窗休句柄,此函数只用于查找顶层窗体,它是FindWindowEx更高级的版本
Code1: 以下代码演示了:
1. 通过FindWindow查找NotePad主窗体(顶层窗体)
2. 从NotePad主窗体中查找其子控件Edit;
3. 发送字串文本到NotePad子控件Edit中.
HWND hWndNotePad = FindWindow(_T("Notepad"), NULL);
if (NULL != hWndNotePad && IsWindow(hWndNotePad))
{
SetWindowText(hWndNotePad, _T("I come from Demo0024"));
HWND hWndEdit = FindWindowEx(hWndNotePad, NULL, _T("Edit"), NULL);
if (NULL != hWndEdit && IsWindow(hWndEdit))
{
const TCHAR* szText = _T("This string is writed by Demo0024 program");
SendMessage(hWndEdit, WM_SETTEXT, (WPARAM)_tcslen(szText) * sizeof(TCHAR), (LPARAM)szText);
MessageBox(hWndNotePad, _T("Demo0024 rename for me"), _T("I come from Demo0024"), MB_OK);
}
}
演示代码
(一) 函数声明
HWND FindWindowEx(HWND hwndParent, HWND hwndChildAfter, LPCTSTR lpszClass, LPCTSTR lpszWindow );
获取与窗体的类名和窗体名相匹配的窗休句柄,此函数在搜索子窗体时以指定的子窗体句柄开始进行, 当后三参数都为NULL时返回此窗体的第一个子窗体
HWND FindWindow(LPCTSTR lpClassName, LPCTSTR lpWindowName );
获取与窗体的类名和窗体名相匹配的窗休句柄,此函数只用于查找顶层窗体,它是FindWindowEx更高级的版本
Code1: 以下代码演示了:
1. 通过FindWindow查找NotePad主窗体(顶层窗体)
2. 从NotePad主窗体中查找其子控件Edit;
3. 发送字串文本到NotePad子控件Edit中.
HWND hWndNotePad = FindWindow(_T("Notepad"), NULL);
if (NULL != hWndNotePad && IsWindow(hWndNotePad))
{
SetWindowText(hWndNotePad, _T("I come from Demo0024"));
HWND hWndEdit = FindWindowEx(hWndNotePad, NULL, _T("Edit"), NULL);
if (NULL != hWndEdit && IsWindow(hWndEdit))
{
const TCHAR* szText = _T("This string is writed by Demo0024 program");
SendMessage(hWndEdit, WM_SETTEXT, (WPARAM)_tcslen(szText) * sizeof(TCHAR), (LPARAM)szText);
MessageBox(hWndNotePad, _T("Demo0024 rename for me"), _T("I come from Demo0024"), MB_OK);
}
}
演示代码
相关文章推荐
- 【Demo 0031】遍历顶层窗体
- Winform窗体初始化Combox控件并模糊查找内容
- c#窗体控件datagriview与dataset的运用:修改,新增,删除,查找,保存,更新
- 今天帮一个哥们弄的查找无标题窗体上的控件句柄的代码
- 窗体内查找webbrowser控件的句柄
- 【Demo 0048】截取窗体背景及控件界面
- [转载]C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- [补充]避免多控件窗体闪烁demo
- C# 多个窗体之间查找控件
- C#如何在webBrowser1控件通过TagName,Name查找元素(没有ID时)遍历窗体元素
- Winform中使用控件名来查找窗体或者容器中的控件
- 在C#下的winform 窗体把控件置于顶层和底层
- Winform中使用控件名来查找窗体或者容器中的控件
- (学)递归查找窗体中全部控件
- 【Demo 0033】遍历窗体中控件
- 在 Windows 窗体中查找控件
- 在窗体上查找控件
- C#应用WindowsApi实现查找\枚举(FindWindow、EnumChildWindows)窗体控件,并发送消息。
- 避免多控件窗体闪烁demo
- 在C#下的winform 窗体把控件置于顶层和底层 .