CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
可用分押宝游戏火热进行中... 专题改版:Java Web 专题
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

如何得到一个窗体的句柄

楼主xifenmin(dtxi)2003-11-01 00:58:13 在 C++ Builder / 基础类 提问

如何得到一个窗体的句柄。又如何往一个窗体上发消息。我听说有两中方法,一种是SendMessage。还有一种我不知道。各位老师能不能给我讲解一下这两个方法是如何使用的。最好能举个例子。谢谢了 问题点数:0、回复次数:6Top

1 楼pp616(坏蛋)回复于 2003-11-01 01:16:57 得分 0

得到窗口句柄简单点可以用FindWindow   或   FindWindowEx  
  功能比较强的还是EnumWindows   和   EnumChildWindows  
   
  发送消息可以用SendMessage   或是   PostMessage  
  SendMessage   和   PostMessage的区别在于PostMessage函数只是向消息队列添加了一条消息。而不保证消息能顺利到达。而SendMessage函数能确定对方收到消息。  
  因此PostMessage函数执行过后立即返回。  
  而SendMessage发出消息要等对方的消息处理函数返回后才返回。同时可以得到一个对方的返回值。  
   
  具体的代码Msdn中都有例子。你可以去看看。  
   
   
   
   
  Top

2 楼Friecin(雪客)回复于 2003-11-01 02:17:03 得分 0

FindWindow("你要找的窗口的Caption",NULL);  
  如果找到了,就返回一个窗口的Handle.Top

3 楼Friecin(雪客)回复于 2003-11-01 02:19:50 得分 0

看看这些:  
   
  http://search.csdn.net/expert/topic/55/5505/2003/6/9/1895870.htm  
  http://search.csdn.net/expert/topic/55/5501/2003/5/4/1739909.htm  
  http://search.csdn.net/expert/topic/55/5505/2003/4/4/1617121.htmTop

4 楼yjy1001(蓝鲸--优秀得郁闷的鱼)回复于 2003-11-01 13:23:35 得分 0

HWND   Notepad   =   ::FindWindow("NotePad",   NULL);  
  //若<记事本>在打开中,即带到最前面  
  if(::ShowWindow(Notepad,SW_SHOWNORMAL))  
        {  
        //确认<记事本>被调用至最前面&取得焦点  
        ::BringWindowToTop(Notepad);  
         
        //仿真键盘键入,将一串字符串送到<记事本>中  
        String   Text("WELCOME   TO   NOTEPAD");  
        for(int   x   =   1;   x   <=   Text.Length();   x++)  
              {  
              keybd_event(Text[x],   0,   0,   0);//发送   模拟按键消息。  
              keybd_event(Text[x],   0,   KEYEVENTF_KEYUP,   0);  
              }  
        //在<记事本>中,跳到下一行  
        keybd_event(VK_RETURN,   0,   0,   0);  
        keybd_event(VK_RETURN,   0,   KEYEVENTF_KEYUP,   0);  
   
        SendMessage(Notepad,WM_CLOSE,0,0);//发送   关闭记事本的消息。  
        }  
  else  
        ShowMessage("抱歉!请先打开<记事本>,\n这只是个功能简单的小程序。");  
   
  具体请   查看帮助。Top

5 楼yasaka(马蹄南去人北望)回复于 2003-11-01 13:36:11 得分 0

这是比较基础的东西,大部分API书上都查得到的Top

6 楼aliker(吹口琴的猫)回复于 2003-11-01 15:36:23 得分 0

HWND   FindWindow(LPCTSTR   IpClassName,LPCTSTR   IpWindowName);    
  第一个参数为要得到的窗体的类名,第二个参数为要得到的窗体的标题名。  
  具体在BCB环境下输入FindWindow,然后选中FindWindow,按F1,看帮助,很详细的。Top

相关问题

  • 如何得到窗体句柄HWND
  • 如何通过窗体句柄得到该窗体内任意控件的句柄?
  • 如何得到另一程序窗体上按钮句柄?
  • 如何得到一个进程的主窗体句柄
  • 如何得到窗体上控件的句柄啊???
  • 如何根据按钮得到父类窗体的句柄?
  • 如何取得窗体上得到焦点的对象句柄?
  • 急急!!!得到子窗体的句柄,如何得到父窗体的句炳。多文档程序中
  • 请问BETA2中如何得到窗体或者控件的句柄?
  • 请问:如何利用API得到对话框窗体的窗口句柄 ?

关键词

  • .net
  • 函数
  • 消息
  • csdn
  • search
  • 窗体
  • 句柄
  • findwindow
  • notepad
  • 得到

得分解答快速导航

  • 帖主:xifenmin

相关链接

  • CSDN Blog
  • 技术文档
  • 代码下载
  • 第二书店
  • 读书频道

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
世纪乐知(北京)网络技术有限公司 版权所有, 京 ICP 证 020026 号
北京创新乐知广告有限公司 提供技术支持
Copyright © 2000-2007, CSDN.NET, All Rights Reserved
GongshangLogo