CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
花落谁家,你作主! 盛大widget设计大赛英雄榜
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  C++ Builder >  基础类

怎么在WINDOWS开始按钮中绘图

楼主Bblover(独孤求败)2002-06-01 13:37:05 在 C++ Builder / 基础类 提问

么在WINDOWS开始按钮中绘图 问题点数:100、回复次数:1Top

1 楼codecb(阿星)回复于 2002-06-01 13:38:08 得分 100

HWND   wnd;  
  HDC   hdcButton,   hdcDesktop;  
  TPoint   pt;  
  3、Form1的FormCreate   过程代码如下  
  void   __fastcall   TForm1::FormCreate(TObject   *Sender)  
  {    
  Application->MessageBox("利用C++Builder在Windows开始按钮上绘图演示程序",   "特别说明",   MB_OK   +   MB_DEFBUTTON1);  
  wnd   =   FindWindow("Shell_TrayWnd",   NULL);  
  wnd   =   FindWindowEx(wnd,   0,   "Button",   NULL);  
  hdcButton   =   GetDC(wnd);    
  wnd   =   GetDesktopWindow();  
  hdcDesktop   =   GetDC(wnd);  
  Timer1->Enabled   =   False;  
  Timer1->Interval   =   1;    
  BitBtn1->Tag   =   0;//开始绘图  
  }  
   
  4、Form1的BitBtn1Click过程代码如下:  
  void   __fastcall   TForm1::BitBtn1Click(TObject   *Sender)  
  {  
  if   (BitBtn1->Tag   ==   0)  
  Timer1->Enabled   =   True;  
  BitBtn1->Caption   =   "结束绘图";  
  BitBtn1->Tag   =   1;  
  }    
  else  
  Close();  
  }    
  5、Form1的Timer1Timer过程代码如下:  
  void   __fastcall   TForm1::Timer1Timer(TObject   *Sender)  
  {    
  GetCursorPos(&pt);  
  StretchBlt(hdcButton,   0,   0,   60,   25,   hdcDesktop,   pt.x   -   30,   pt.y   -   12,   60,   25,   SRCCOPY);  
  }    
  7、按F9运行程序。以上程序在C++   Builder   5.0、Windows95/98/NT/2000简体中文版环境下调试通过。    
   
  三.程序清单  
  #include   <vcl.h>  
  #pragma   hdrstop    
  #include   "Unit1.h"    
  #pragma   package(smart_init)    
  #pragma   resource   "*.dfm"    
  TForm1   *Form1;    
  HWND   wnd;    
  HDC   hdcButton,   hdcDesktop;    
  TPoint   pt;    
  __fastcall   TForm1::TForm1(TComponent*   Owner)   :   TForm(Owner)    
  {    
  }    
  void   __fastcall   TForm1::Timer1Timer(TObject   *Sender)    
  {  
  GetCursorPos(&pt);  
  StretchBlt(hdcButton,   0,   0,   60,   25,   hdcDesktop,   pt.x   -   30,   pt.y   -   12,   60,   25,   SRCCOPY);  
  }    
  void   __fastcall   TForm1::FormCreate(TObject   *Sender)  
  {    
  Application->MessageBox("利用C++Builder在Windows开始按钮上绘图演示程序",   "特别说明",   MB_OK   +   MB_DEFBUTTON1);  
  wnd   =   FindWindow("Shell_TrayWnd",   NULL);    
  wnd   =   FindWindowEx(wnd,   0,   "Button",   NULL);    
  hdcButton   =   GetDC(wnd);    
  wnd   =   GetDesktopWindow();    
  hdcDesktop   =   GetDC(wnd);    
  Timer1->Enabled   =   False;    
  Timer1->Interval   =   1;    
  BitBtn1->Tag   =   0;//开始绘图    
  }    
  void   __fastcall   TForm1::BitBtn1Click(TObject   *Sender)  
  {    
  if   (BitBtn1->Tag   ==   0)    
  Timer1->Enabled   =   True;    
  BitBtn1->Caption   =   "结束绘图";    
  BitBtn1->Tag   =   1;    
  else    
  Close();    
  }    
  是我下的!  
  给分!  
  谢!Top

相关问题

  • 怎样得到windows"开始"按钮的句柄
  • 如何在窗口标题栏绘图,并替换那三个控制窗口的按钮???
  • 绘图
  • 绘图
  • 绘图?
  • 网上SOS请问各位大虾!怎么隐藏windows开始按钮!我不想隐藏状态条!
  • Windows下绘图时如何实现旋转
  • 按下非模态对话框里的“画图”按钮,就在SDI的VIEW窗口里绘图,请问如何实现,谢谢
  • 动态控制Windows任务栏按钮
  • 绘图问题

关键词

  • c++builder
  • 代码
  • tag
  • null
  • 绘图
  • wnd
  • hdcdesktop
  • hdcbutton
  • bitbtn
  • fastcall tform

得分解答快速导航

  • 帖主:Bblover
  • codecb

相关链接

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

广告也精彩

反馈

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