社区
界面
帖子详情
知道一个窗口的ID,用什么函数得到它的句柄?
ysnis
2018-08-07 05:30:25
知道一个Formview窗口的ID,用什么函数得到它的句柄?
想实现在一个formview里 得到另一个formview的窗口句柄, 好向他发消息。 ID已知, 有办法吗?
...全文
304
15
打赏
收藏
知道一个窗口的ID,用什么函数得到它的句柄?
知道一个Formview窗口的ID,用什么函数得到它的句柄? 想实现在一个formview里 得到另一个formview的窗口句柄, 好向他发消息。 ID已知, 有办法吗?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
15 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ysnis
2018-08-08
打赏
举报
回复
没问题了, 就是 CWnd *pWnd = AfxGetMainWnd();
ysnis
2018-08-08
打赏
举报
回复
m_wndSplitter.GetPane(0, 0) // 左 m_wndSplitter.GetPane(0, 1) // 右 没有问题 目前问题 是 如何得到主对话框句柄 (从formview1里), formview1是主对话框一个切分子窗口 , 不得到 主对话框我没法调用 m_wndSplitter.GetPane(0, 0)
schlafenhamster
2018-08-08
打赏
举报
回复
那么
m_wndSplitter.GetPane(0, 0) // 左
m_wndSplitter.GetPane(0, 1) // 右
ysnis
2018-08-08
打赏
举报
回复
有 m_wndSplitter
schlafenhamster
2018-08-08
打赏
举报
回复
有没有 m_wndSplitter. ?
ysnis
2018-08-08
打赏
举报
回复
我 是 对话框切分窗口, 用不到 CMainFrame 目前问题 是 如何得到主对话框句柄 (从formview1里), formview1是主对话框一个切分子窗口
ysnis
2018-08-08
打赏
举报
回复
FindWindow 好像不能找子窗口, 只能找 top window 现在只好通过主对话框去 找那个 formview2 子窗口 在 formview1 里 HWND hWnd = ::GetParent(this->GetSafeHwnd()); 没能得到主对话框的 句柄 目前问题 是 如何得到主对话框句柄 (从formview1里), formview1是对话框一个切分子窗口
schlafenhamster
2018-08-08
打赏
举报
回复
"formview2 好像不能设置 caption, FindWindow 就不起作用"
使用窗口 类 ,不用 caption
schlafenhamster
2018-08-08
打赏
举报
回复
切分窗口的 两个子窗口
mainframe 中
virtual ~CMainFrame();
CHMI_manView* GetRightPane();// list
CLeftView* GetLeftPane(); // tree
// CMainFrame message handlers
CHMI_manView* CMainFrame::GetRightPane()
{
CWnd* pWnd = m_wndSplitter.GetPane(0, 1);
CHMI_manView* pView = DYNAMIC_DOWNCAST(CHMI_manView, pWnd);
return pView;
}
////
CLeftView* CMainFrame::GetLeftPane()
{
CWnd* pWnd = m_wndSplitter.GetPane(0, 0);
CLeftView* pView = DYNAMIC_DOWNCAST(CLeftView,pWnd);
return pView;
}
调用
// get rightpane
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();
CHMI_manView* pView=pMain->GetRightPane();
//
// get LeftTree
CMainFrame* pMain=(CMainFrame*)AfxGetMainWnd();// m_pMainWnd;
CLeftView * pLeft=pMain->GetLeftPane();
ysnis
2018-08-07
打赏
举报
回复
formview1和 formview2 是 dialog 切分窗口的 两个子窗口, 设置为 child, 没有父子关系, 现要从 formview1向 formview2 发消息, 知道 formview2的ID , 如何得到 formview2 的窗口句柄? formview2 好像不能设置 caption, FindWindow 就不起作用
ysnis
2018-08-07
打赏
举报
回复
findwindow 第二个参数是另一个窗口的caption? 在另一个窗口里怎么设置这第二个参数的值啊?
schlafenhamster
2018-08-07
打赏
举报
回复
findwindow
ysnis
2018-08-07
打赏
举报
回复
这两个formview没有父子关系, 要从一个formview向另一个formview发消息, 我 想获得那个formview的窗口句柄 GetDlgItem 是获得窗口上一个控件的句柄吧, 能用来获得另一个窗口句柄吗? 是不是这样写 GetDlgItem(m_Hwnd1, IDD_FORMVIEW2)
三岁、就很帅
2018-08-07
打赏
举报
回复
hwndScroll = GetDlgItem(hwnd, IDC_SCROLL);
假设一个父窗口中有多个子窗口。那么本函数是返回一个子窗口句柄。
第一个参数:父窗口句柄
第二个参数:子窗口ID
再假设 父窗口是一个对话框,子窗口是对话框中的一个滚动条
那么上面代码就很清晰了 hwndScroll就是滚动条的窗口句柄HWND
schlafenhamster
2018-08-07
打赏
举报
回复
GetDlgItem
The GetDlgItem function retrieves the handle of a control in the specified dialog box.
HWND GetDlgItem(
HWND hDlg, // handle of dialog box
or the other formview
int nIDDlgItem // identifier of control
);
Parameters
hDlg
Identifies the dialog box that contains the control.
nIDDlgItem
Specifies the identifier of the control to be retrieved.
通过进程号
ID
获得
窗口
的
句柄
本文介绍了三种通过进程
ID
获取
窗口
句柄
的方法,包括使用FindWindow API
函数
、EnumWindows与GetWindowThreadProcess
Id
组合以及GUITHREADINFO和GetGUIThreadInfo。这些方法适用于VC6.0环境,对于需要操控其他进程
窗口
的应用场景具有参考价值。
已知进程
句柄
,如何
知道
此进程的主
窗口
句柄
本文介绍通过已知进程
句柄
获取主
窗口
句柄
的方法。提供了两种途径:一是使用FindWindow()
函数
,需要
窗口
类名及名称;二是通过枚举所有
窗口
并利用GetWindowThreadProcess
ID
()与进程
ID
对比,找到顶层
窗口
。
MFC
窗口
句柄
获取
本文详细介绍了在程序开发中如何获取
窗口
句柄
、主
窗口
句柄
、子
窗口
句柄
及如何通过
句柄
操作
窗口
控件,包括使用CWnd类的GetSafeHwnd
函数
、AfxGetMainWnd、FindWindow等方法,并展示了如何通过
句柄
获取控件的
句柄
和操作
窗口
中的控件。
WIN32进程快照以及进程
ID
和
句柄
查找
本文介绍了如何在Windows系统中获取进程
ID
,包括从
窗口
句柄
和通过快照方式获取,以及如何利用进程
ID
通过OpenProcess
函数
获取进程
句柄
,最后讨论了对进程的管理和控制,如权限需求和进程终止。
win32 API
窗口
句柄
的获得——我的经验
本文介绍了如何获取
窗口
句柄
,重点讨论了FindWindow、FindWindowEx、WindowFromPoint以及EnumWindows系列
函数
的用法。通过实例展示了如何通过鼠标位置获取
窗口
信息,以及使用递归方式遍历所有
窗口
。最后提到了获取
窗口
类名的方法,并提出了对HWND与
ID
转换以及特定控件识别的疑问。
界面
15,976
社区成员
115,866
社区内容
发帖
与我相关
我的任务
界面
VC/MFC 界面
复制链接
扫一扫
分享
社区描述
VC/MFC 界面
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章