转载地址:https://www.cnblogs.com/lujin49/p/4796502.html

//一个程序获取另一个程序Edit控件的内容

//根据指定程序的标题名获取改程序窗口的句柄
HWND hWnd=::FindWindow(NULL,"zhang001");
if(hWnd)
{
MessageBox("get windows");
//根据窗口句柄获取EDIT控件的ID,但是这个ID是通过VS工具spy++获取的
HWND h = ::GetDlgItem(hWnd,0x3E9);
if (h!=NULL)
{
CString str0;
//要知道SendMessage用法,特别是第三个参数
//根据EDIT控件的ID获取控件内容,存放到str0中
::SendMessage(h,WM_GETTEXT,20,(LPARAM)(LPCTSTR)str0);
//将获得的内容放到本程序指定的EDIT控件中进行显示
GetDlgItem(IDC_EDIT1)->SetWindowText(str0);
MessageBox(str0);
}
}
else
{
MessageBox("fail!");
}
运行结果如下:
采用以上程序由于采用CString,获取的内容大小不定,当制定的缓存和制定的大小不一样时就会产生一下的错误
整个程序改为一下代码,就好了:
//一个程序获取另一个程序Edit控件的内容//根据指定程序的标题名获取改程序窗口的句柄
CString str;GetDlgItemText(IDC_TITLE,str);HWND hWnd=::FindWindow(NULL,str);//"zhang001"if(hWnd){MessageBox("get windows");//根据窗口句柄获取EDIT控件的ID,但是这个ID是通过VS工具spy++获取的
HWND h = ::GetDlgItem(hWnd,0x3E9);if (h!=NULL){//CString str0;char temp[50];//要知道SendMessage用法,特别是第三个参数//根据EDIT控件的ID获取控件内容,存放到str0中
::SendMessage(h,WM_GETTEXT,sizeof(temp)/sizeof(char),(LPARAM)temp);//第三个和第四个参数是缓存大小和缓存指针//将获得的内容放到本程序指定的EDIT控件中进行显示
GetDlgItem(IDC_EDIT1)->SetWindowText(temp);//MessageBox(str0);
}}else{MessageBox("fail!");}

注:要想获取某控件的位置 可以使用下面的方法

GetDlgItem(控件ID)->GetWindowRect(&rect);//获取控件基于全频的位置ScreenToClient(rect);//转换为对话框上的相对位置

如何获取控件的ID

MFC::
CWnd *pWnd = GetFocus();
if(pWnd == NULL)
;//no focus
else
UINT nID = pWnd->GetDlgCtrlID();SDK:
HWND hWnd = ::GetFocus();
if(hWnd == NULL)
;//no focus
else
UINT nID = ::GetDlgCtrlID(hWnd);GetFocus: The return value is the handle to the window with the keyboard focus. If the calling thread's message queue does not have an associated window with the keyboard focus, the return value is NULL. 

C++ 一个程序获取另一个程序Edit控件的内容相关推荐

  1. 一个抓取电脑屏幕的小控件台程序

    一个抓取电脑屏幕的小控件台程序 using System; using System.Collections.Generic; using System.Linq; using System.Text ...

  2. java程序获取外部java程序的控件,将 Java 小程序迁移到 Microsoft J# 浏览器控件-JSP教程,Java技巧及代码...

    visual j# .net 小组 microsoft corporation 摘要:通过 microsoft j# 浏览器控件,开发人员可以将所编写的在 java 虚拟机上运行的 java 小程序迁 ...

  3. C#应用程序界面开发进阶——高级窗体控件(5)——MonthCalender控件

    MonthCalendar控件用来查看和设置日期信息.它是一个可视化网络图形界面,风格内包含月份的编号日期,这些日期排列在周一至周日下方的七个列中.用户可以单击月份标题任何一侧的箭头按钮来选择不同的月 ...

  4. 在应用了皮肤的程序中制作透明的文本编辑控件(如:TcxMemo)

    我要在程序中显示一段信息,因为需要让文字的背景透明,我首先使用静态文本控件来实现 遇到需要进行编辑的时候,静态文本控件就不能满足要求了,这就使我想到了可不可以制作一个透明的文本编辑控件 首先上网查了一 ...

  5. pyqt控件显示重叠_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

    1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...

  6. python rgb led控件_Python编程:一个不错的基于PyQt的Led控件显示库,建议收藏学习...

    1.控件说明 在Github上,偶然发现了一个基于PyQt5的第三方Led指示灯控件库,使用起来非常方便,控件外观也比较漂亮,更难能可贵的是作者源代码写得比较简洁,仅仅才约200行左右,可以作为一个在 ...

  7. 根据获取的窗口句柄遍历窗口Edit控件

    网上说遍历窗口控件有两种方法: 1),使用EnumChildWindows,没有深究,     学习网址如下: http://blog.sina.com.cn/s/blog_60ac1c4b01011 ...

  8. 一个Demo让你掌握Android所有控件

    一个Demo让你掌握Android所有控件 原文:一个Demo让你掌握Android所有控件 本文是转载收藏,侵删,出处:"安卓巴士"      下面给出实现各个组件的源代码: 1 ...

  9. [UWP]实现一个轻量级的应用内消息通知控件

    [UWP]实现一个轻量级的应用内消息通知控件 原文:[UWP]实现一个轻量级的应用内消息通知控件 在UWP应用开发中,我们常常有向用户发送一些提示性消息的需求.这种时候我们一般会选择MessageDi ...

最新文章

  1. [转载]ACM搜索算法总结(总结)
  2. threeten-extra使用实例
  3. 重写、重载方法的调用
  4. 豆瓣9.0,35万读者“搜不到信息”的神秘作者,我们帮你找到了
  5. C语言程序设计,第四版 ,谭浩强。绝对原版,最新的资料
  6. 大佬教你如何写出更好的CSS,分享web前端资料
  7. html5新的dom函数,从0到1: 实现一个虚拟 DOM(上)
  8. 【转】进程死锁及解决方法
  9. Hibernate的SQL查询
  10. vss2005 配置与使用
  11. 485芯片RO 口收不到信号问题分析
  12. Python 第六章 面向对象编程(MD模式)
  13. JAVA面向对象 从0.5到1
  14. java编程思想第4版 第五章习题
  15. C# word类库 光标移动
  16. 面经-腾讯前端开发工程师
  17. 如何实现直播秒开技术?
  18. 基于MES系统的追溯管理功能,没你想的那么复杂
  19. [设计模式]设计模式SOLID原则
  20. 2021年最新React状态管理解决方案

热门文章

  1. CString类(转)
  2. 飞秋官方下载 这个程序很不错
  3. Visual C++实现定制标题栏
  4. 编程技术越来越被看中 编程到底是什么?
  5. 苦逼了6年,我今天终于把老板开了!哼!
  6. 需求评审会议上,被逼疯的程序员
  7. OpenCV中直方图对比
  8. 单个基因集富集分析泡泡图绘制
  9. 清朝神秘女科学家,在国外火了200多年,我却对她一无所知…
  10. 生物数据库建设,等你来~