CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  GAME,图形处理/多媒体

求教:戏中人物说话的时候,头上冒个泡出来,里面是说话的内容,这个效果是怎么做的

楼主SauMa(笨笨)2006-07-03 15:53:57 在 Delphi / GAME,图形处理/多媒体 提问

如题目,要求并不高,就是棋牌类游戏中一个固定位置的人物说话的效果..是用的图片拉伸么? 问题点数:20、回复次数:5Top

1 楼daydayup234(关中刀客)回复于 2006-07-03 15:59:53 得分 0

agentTop

2 楼zsr(老牛)回复于 2006-07-03 19:47:34 得分 0

相当于一个HINT窗口而已。Top

3 楼andyzhou1101(我是一片云(Studying Java...))回复于 2006-07-03 20:04:15 得分 20

给你个例子看看  
  (气泡提示)  
   
  -------------------  
  -------------------  
   
  unit   Unit1;  
   
  interface  
   
  uses  
      Windows,   Messages,   SysUtils,   Variants,   Classes,   Graphics,   Controls,   Forms,  
      Dialogs,   StdCtrls,Commctrl;  
   
  type  
      TForm1   =   class(TForm)  
          Memo1:   TMemo;  
          Button1:   TButton;  
          procedure   Button1Click(Sender:   TObject);  
      private  
          {   Private   declarations   }  
      public  
          {   Public   declarations   }  
      end;  
   
      const  
      TTS_BALLOON   =   $40;  
      TTM_SETTITLE   =   (WM_USER   +   32);  
   
  var  
      Form1:   TForm1;  
      hTooltip:   Cardinal;  
      ti:   TToolInfo;  
      buffer   :   array[0..255]   of   char;  
   
  implementation  
   
  {$R   *.dfm}  
   
  procedure   CreateToolTips(hWnd:   Cardinal);  
  begin  
      hToolTip   :=   CreateWindowEx(0,   'Tooltips_Class32',   nil,   TTS_ALWAYSTIP   or   TTS_BALLOON,  
      Integer(CW_USEDEFAULT),   Integer(CW_USEDEFAULT),   Integer(CW_USEDEFAULT),  
      Integer(CW_USEDEFAULT),   hWnd,   0,   hInstance,   nil);  
      if   hToolTip   <>   0   then  
      begin  
      SetWindowPos(hToolTip,   HWND_TOPMOST,   0,   0,   0,   0,   SWP_NOMOVE   or  
      SWP_NOSIZE   or   SWP_NOACTIVATE);  
      ti.cbSize   :=   SizeOf(TToolInfo);  
      ti.uFlags   :=   TTF_SUBCLASS;  
      ti.hInst   :=   hInstance;  
      end;  
  end;  
   
  procedure   AddToolTip(hwnd:   DWORD;   lpti:   PToolInfo;   IconType:   Integer;  
  Text,   Title:   PChar);  
  var  
      Item:   THandle;  
      Rect:   TRect;  
  begin  
      Item   :=   hWnd;  
      if   (Item   <>   0)   and   (GetClientRect(Item,   Rect))   then  
      begin  
      lpti.hwnd   :=   Item;  
      lpti.Rect   :=   Rect;  
      lpti.lpszText   :=   Text;  
      SendMessage(hToolTip,   TTM_ADDTOOL,   0,   Integer(lpti));  
      FillChar(buffer,   SizeOf(buffer),   #0);  
      lstrcpy(buffer,   Title);  
      if   (IconType   >   3)   or   (IconType   <   0)   then   IconType   :=   0;  
      SendMessage(hToolTip,   TTM_SETTITLE,   IconType,   Integer(@buffer));  
      end;  
  end;  
   
  procedure   TForm1.Button1Click(Sender:   TObject);  
  begin  
      CreateToolTips(Form1.Handle);  
      AddToolTip(Memo1.Handle,   @ti,   1,   '好大一个气泡',   'Title');  
  end;  
   
  end.  
  Top

4 楼SauMa(笨笨)回复于 2006-07-03 20:40:32 得分 0

楼上的兄弟,按照你的代码,按了BUTTON没反映啊Top

5 楼SauMa(笨笨)回复于 2006-07-03 21:25:21 得分 0

哦,搞明白了,谢谢Top

相关问题

关键词

得分解答快速导航

  • 帖主:SauMa
  • andyzhou1101

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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