CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
IBM Rational 系统开发最佳实践工具包 WebSphere MQ 最佳实践 TOP 15
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  VB >  基础类

我想把窗体的颜色变成我所加载图像(但不显示)的左上角的颜色,如何实现阿?(很easy的!!)

楼主dongyisheng(Apple)2006-03-17 09:51:28 在 VB / 基础类 提问

我想把窗体的颜色变成我所加载图像(但不显示)的左上角的颜色,如何实现阿?  
   
   
  Private   Declare   Function   GetPixel   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long)   As   Long  
   
  Private   Sub   Form_Load()  
   
  Dim   lFirstDotColor   As   Long  
   
  Dim   picNumber   As   Picture  
   
  Set   picNumber   =   LoadPicture(App.Path   +   "/"   +   "number.jpg")''''''加载一张图片  
  lFirstDotColor   =   GetPixel(picNumber.Handle,   1,   1)'''''调用api  
   
  With   frmImage  
          .BackColor   =   lFirstDotColor    
  End   With  
   
  End   Sub  
   
   
  我觉得应该这样写,但是运行结果不对,哪里出了问题啊?请大虾指教!^_^ 问题点数:80、回复次数:8Top

1 楼ZOU_SEAFARER(颓废程序员^_^)回复于 2006-03-17 10:27:09 得分 0

color=[对象].point   (x,y)  
  这个你看看能不能取得色彩Top

2 楼dongyisheng(Apple)回复于 2006-03-17 10:38:43 得分 0

ms   只有picturebox有这个属性,picture没有这个属性啊?这么用阿?求教!!Top

3 楼xDAVIDx(DAVID)回复于 2006-03-17 11:13:00 得分 0

在窗体上放置一个PictureBox控件,然后把你的图像放到PictureBox控件中去,然后按下面这样写:)  
   
  Private   Declare   Function   GetPixel   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long)   As   Long  
   
  Private   Sub   Form_Load()  
   
  Dim   lFirstDotColor   As   Long  
   
  lFirstDotColor   =   GetPixel(Picture1.hdc,   1,   1)     '''''调用api  
   
  Me.BackColor   =   lFirstDotColor  
   
  End   SubTop

4 楼dongyisheng(Apple)回复于 2006-03-17 11:46:24 得分 0

哦,xDAVIDx(DAVID)   提供的写法我是会的(抱歉哦,我没有说清楚),但是如果不用图片框是不是可以呢?(因为仅仅需要加载一下,不用显示的,因为我可能需要同时动态加载许多图片到内存中)  
   
  或者说如果我不借助图片框就不能实现了吗?求教……???Top

5 楼rainstormmaster(暴风雨 v2.0)回复于 2006-03-17 13:43:56 得分 80

这样:  
  Option   Explicit  
  Private   Declare   Function   DeleteDC   Lib   "gdi32"   (ByVal   hdc   As   Long)   As   Long  
  Private   Declare   Function   CreateCompatibleDC   Lib   "gdi32"   (ByVal   hdc   As   Long)   As   Long  
  Private   Declare   Function   SelectObject   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   hObject   As   Long)   As   Long  
  Private   Declare   Function   DeleteObject   Lib   "gdi32"   (ByVal   hObject   As   Long)   As   Long  
  Private   Declare   Function   GetPixel   Lib   "gdi32"   (ByVal   hdc   As   Long,   ByVal   x   As   Long,   ByVal   y   As   Long)   As   Long  
   
   
  Private   Sub   test(ByVal   FileName   As   String)  
          Dim   pic   As   New   StdPicture  
          Dim   mDc   As   Long  
          Dim   lFirstDotColor   As   Long  
          Set   pic   =   LoadPicture(FileName)   '读取图形档  
          mDc   =   CreateCompatibleDC(0)   '建立Memory   DC  
          SelectObject   mDc,   pic.Handle   '在该memoryDC上放上bitmap图  
          lFirstDotColor   =   GetPixel(mDc,   0,   0)  
          Me.BackColor   =   lFirstDotColor  
          Call   DeleteDC(mDc)  
    End   Sub  
   
   
  Private   Sub   Command1_Click()  
  test   "g:\mc\mmtest.jpg"  
  End   SubTop

6 楼xihongjian(迷失方向的小鸟)回复于 2006-03-17 15:15:58 得分 0

[对象].point   (x,y)  
  取得颜色.然后设置背景色就行把。Top

7 楼caohuang(曹)回复于 2006-03-17 16:02:57 得分 0

先在窗体加载一张背景图片  
  Form1.BackColor   =   Point(20,   20)Top

8 楼caohuang(曹)回复于 2006-03-17 16:10:19 得分 0

 
  Private   Sub   Form_Activate()  
  Form1.Picture   =   LoadPicture("C:\Documents   and   Settings\wf2-1\My   Documents\My   Pictures\1.jpg")  
  Form1.BackColor   =   Form1.Point(20,   20)  
  End   Sub  
   
  不知道为什么在窗体的load事件里不可以执行Form1.BackColor   =   Form1.Point(20,   20)这行代码  
  Top

相关问题

  • 窗体加载问题
  • 子窗体图像保存!
  • 如何动态加载窗体?
  • 如何判断窗体已经加载
  • 窗体加载启动速度问题?
  • 如何正确加载窗体
  • 怎样知道当前加载了多少窗体?或者避免重复加载窗体?
  • 一个MDI窗体怎样在加载子窗体时,使子窗体为最大化!!!
  • Mdi窗体加载新的子窗体时候如何释放原来的子窗体
  • 如何得到窗体的图像?

关键词

  • mdc
  • 图像
  • lfirstdotcolor
  • 窗体
  • 加载
  • longprivate
  • 颜色
  • getpixel
  • gdi32
  • byval

得分解答快速导航

  • 帖主:dongyisheng
  • rainstormmaster

相关链接

  • Visual Basic类图书
  • Visual Basic类源码下载

广告也精彩

反馈

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