如何对其他窗体的控件进行操作?

wyllq_5267 2006-10-20 04:39:00
我现在要在一个窗体对另外的一个窗体上的控件进行操作,该如何进行?譬如说被操作的窗体类名为
CE1Dlg,其上有个ID为IDC_STATIC1的控件,如何才能获取该控件的句柄?
我用FindWindow("CE1Dlg",NULL)来获取窗体的句柄,为何结果为空啊?
...全文
139 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
wyllq_5267 2006-10-21
  • 打赏
  • 举报
回复
两个窗体都在一个程序中啊,如何相互控制?!我是菜鸟,能不能详细点啊?谢谢了
「已注销」 2006-10-21
  • 打赏
  • 举报
回复
楼上确实正解
neosu 2006-10-20
  • 打赏
  • 举报
回复
FindWindow要从主窗口开始. 或者CE1Dlg不是它的classname.你可以用spy++确定它的classname.

其控件也可以通过FindWindow发现.

如果要设置其中的文本. 需要发送WM_SETTEXT方法.
由于你要修改的字段处于另一个进程, 你还需要参考以下代码:

GetWindowThreadProcessId(hWnd, &nPID); //得到句柄所在的进程.
hProcess=OpenProcess(PROCESS_ALL_ACCESS,false,nPID);
.....
VirtualAllocEx
.....
WriteProcessMemory
.....
SendMessage(.....)

beijingshizi 2006-10-20
  • 打赏
  • 举报
回复
在一个程序中,直接获取类指针就是了。

如果不在一个进程中:

注意: FindWindow的参数是窗口的标题。

然后使用枚举子窗口的api来处理 EnumChildWindows
superroboy 2006-10-20
  • 打赏
  • 举报
回复
利用消息机制,发消息给CE1Dlg,让他去处理控件

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧