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

大虾们,帮忙啦,救救初学者呀!!!!50分

楼主cfeisw(昨日重现)2003-09-02 14:51:52 在 VC/MFC / 硬件/系统 提问

我想在我写的一个程序,这个程序运行后要在其它的程序(例如:记事本)输出一个字符串(ss),我该用那些函数呢??我知道输入法的程序就可以在其它程序里面显示的.  
  具体一点的问题:  
    1,运行的一个记事本程序,怎么得到它的句柄(HIMC   ),用那些函数,包含     那些头文件  
    2,我在我的程序里面用什么来存放我要向notepad输出的字符串.是不是申请    一个内存块,然后把串放进去.(如果是,用什么函数申请内存,用那些结    构体,怎么把串放到内存中)  
    3,如果串在内存中我用什么函数把它发送到我想发送的程序中(notepade),    用什么函数.因为notepad程序不是我写的,是不是我把串发过去它就会显    示出来呢!!  
   
  希望大家不吝赐教 问题点数:0、回复次数:4Top

1 楼ajn_sailing(飞鸟Andrew)回复于 2003-09-02 17:10:34 得分 0

upTop

2 楼SlayerCarrier(狂暴杀手)回复于 2003-09-02 17:26:03 得分 0

先用FindWindow(),WindowFromPoint()找到窗口句柄,然后用SendMessage   发消息Top

3 楼akiko(弥弥)回复于 2003-09-02 17:30:52 得分 0

以notepad举例:  
  BOOL   CALLBACK   Proc(HWND   hw,   long   lParam)  
  {  
  char   ch[80];  
  if(hw)::GetClassName(hw,ch,80);  
  else   return   FALSE;  
  if(strcmp(ch,"Edit")==0)::PostMessage(hw,WM_CHAR,'A',0);  
  return   TRUE;  
  }  
  HWND   hw=::FindWindow(0,"1.txt   -   记事本");  
  ::EnumChildWindows(hw,Proc,0);Top

4 楼cfeisw(昨日重现)回复于 2003-09-02 20:19:35 得分 0

谢谢各位的指教,但是我还有些疑问.  
  1,FindWindow()这个函数不熟,我想第二个参数是从那里来的呢,是不是文件名字.  
    我照你们的方法试了一下,并打开了一个名为"1.txt"的记事本,然后运行我的程序  
     其中包括这样的语句  
              hw=::FindWindow(0,"1.txt   -   记事本");  
              SendMessage(hw,WM_CHAR,'A',0);  
          但是发现记事本里面没有出现应有的字符.???我那地方出错了吗.  
   
   
  我在写的程序是一个相当与输入法的程序,先用鼠标在我的程序里面写出汉字,由我的程序模糊识别出是那个汉字,然后我想把这个汉字发送到打开的一个可以输入的某个程序中.  
  我查了一下资料:  
  LRESULT   MyGenerateMesage(HIMC   hIMC,   UINT   msg,   WPARAM   wParam,   LPARAM   lParam)    
  {    
  LPINPUTCONTEXT   lpIMC;    
  //HGLOBAL   hTemp;    
  LPCOMPOSITIONSTRING   lpCompStr;  
  LPDWORD   lpdwMsgBuf;    
  DWORD   dwMyNumMsg   =   1;    
   
  //   Lock   the   input   context.    
  if   (hIMC)    
  {  
  //   It   is   not   NULL   context.    
  lpIMC   =   ImmLockIMC(hIMC);    
   
   
  lpCompStr   =   (LPCOMPOSITIONSTRING)   ImmLockIMCC(lpIMC->hCompStr);    
  ImmUnlockIMCC(lpIMC->hCompStr);    
  //   Lock   the   memory   for   the   message   buffer.    
  lpdwMsgBuf   =   (LPDWORD)ImmLockIMCC(lpIMC->hMsgBuf);    
  //   Set   the   number   of   the   messages.    
  lpIMC->dwNumMsgBuf   +=   100;    
   
  //Set   the   messages   that   the   IME   needs   to   generate.    
  *lpdwMsgBuf++   =   (DWORD)   msg;    
  *lpdwMsgBuf++   =   (DWORD)   wParam;    
  *lpdwMsgBuf++   =   (DWORD)   lParam;  
   
   
  //   Unlock   the   memory   for   the   message   buffer   and   the   input   context.    
   
  //ImmUnlockIMCC(lpIMC->hMsgBuf);    
  ImmLockIMC(hIMC);    
   
  //   Call   ImmGenerateMessage   function.    
  ImmGenerateMessage(hIMC);    
  }  
  return   0;  
    }  
   
  我对这些函数不熟,这些函数需要包含什么头文件才能运行呢,我只包含了<windows.h>,发现不能运行这些函数,出现这样的提示  
  error   LNK2001:   unresolved   external   symbol   _ImmUnlockIMC@4  
   
  在我的程序里面我是想发送汉字或符号到其它程序去的(不知道这个程序的classname   和 windowname)SendMessage(hw,WM_CHAR,'A',0);也许可以发送但个字符,那我怎么发送汉字呢?汉字用什么存储呢?Top

相关问题

  • 英雄们,救救。。。。。
  • 救救我吧,高手们。
  • 高手们,救救我呀!
  • 朋友们救救我!
  • 兄弟们。救救我,
  • 大哥们,救救我吧!!!
  • 高手们,救救我呀!!!!
  • 万事俱备,只差一步,高手们,救!救!救!
  • 还我眼泪!兄弟们救救我!
  • 帮帮我,救救我!大哥们!!

关键词

  • 函数
  • 记事本
  • 汉字
  • 内存
  • 程序
  • lpimc
  • lpdwmsgbuf
  • hw
  • himc
  • findwindow

得分解答快速导航

  • 帖主:cfeisw

相关链接

  • Visual C++类图书
  • Visual C++类源码下载

广告也精彩

反馈

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