用图片作背景,当显示字时,字的背景色把图片盖住了。如何解决?

tombat 2002-03-25 12:34:18
我用一张bmp图片作程序的背景,背景上要随机显示一些字。结果每1显示字就像在背景上加了幅标语一样,图片被字的背景色形成的方块遮住了。
怎么做才能只显示字,而字以外的仍是图片呢?
...全文
532 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
in_cloud 2002-03-25
  • 打赏
  • 举报
回复
SetBkMode(TRANSPARENT)
captainliyun 2002-03-25
  • 打赏
  • 举报
回复
如果你是通过cdc来写字的话
请 dc->SetBkMode(TRANSPARENT);
dc->TextOut(........);
duqiang2050 2002-03-25
  • 打赏
  • 举报
回复

用bitblt函数,最后的参数设为SRCAND
2ndboy 2002-03-25
  • 打赏
  • 举报
回复
SetBkMode(TRANSPARENT);
wxq888 2002-03-25
  • 打赏
  • 举报
回复
文字更改后,应该调用,pDoc->UpdateAllViews(NULL)
Xsean 2002-03-25
  • 打赏
  • 举报
回复
文字更改后,要重绘一次,你用invalidate()试一下,如果可以解决的话,那你再多写几行代码,只重绘显示文字的区域就行了。(invalidate()重绘整个客户区域)
hnyyy 2002-03-25
  • 打赏
  • 举报
回复
dc.SetBkMode(TRANSPARENT)
fhbkyo 2002-03-25
  • 打赏
  • 举报
回复
这样好象不行的吧
用SetBkColor(hdc,crColor)函数试试
应该有收获
序一(08/07/21) 很久之前就在一个网站的截取相片的功能中看到这个效果,也叫图片裁剪、图片剪切(设置一下也可以做出放大镜等类似的效果)。 当时觉得很神奇,碍于水平有限,没做出来。 前些日子突然想做一个透镜效果,就突然想到了这个效果,于是找出当年“珍藏”的代码决定一尝所愿。 序二(08/12/06) 自上一个版本的图片切割效果出来后,虽然也经常看到“框架开发这个如何如何容易”之类的评论,但也受到很多人的肯定,小弟在此感谢大家的支持。 上一个版本由于是初次接触这类效果,而且是三个大功能一起开发,能力所限,所以仅仅是实现了效果就完成了。 后来我知道这个效果叫ImageCropper,找了些这类效果参考,完善了切割的部分。 近来我把其中的拖放效果和缩放效果单独出来研究,经过整理和完善,再套进切割效果,个人感觉效果已经不错了。 要说明的是这个只是一个效果,并不是真正的切割图片,要获取真正的切割图片请参考图片切割系统。 先看看效果: 图片地址: 程序说明 这个效果主要分三个部分:层的拖放、层的缩放、图片切割(包括预览)。 其中层的拖放和层的缩放我已经在其他两篇文章中有详细说明,这里就说说图片切割这部分吧。 【图片切割】 关于图片切割的设计,有三个方法: 1.定位四个半透明层,遮住要盖住的部分,没试过,感觉比较麻烦; 2.把图片设为背景图,通过设置背景图的位置来实现,但这样的缺点是只能按图片的正常比例实现,不够灵活; 3.把图片放到切割对象里面,通过设置图片的top和left实现,这个方法是可行,但下面有更简单的方法实现; 4.通过设置图片的clip来实现。 这里介绍方法4的实现方法,这个方法是从当年“珍藏”的代码中看到的,先说说clip: clip的用是“检索或设置对象的可视区域。可视区域外的部分是透明的。” 依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值来剪切。 例如: div { position:absolute; width:60px; height:60px; clip:rect(0 20 50 10); } 注意position:absolute的设置是必须的(详细看手册)。 下面说说具体实现原理: 首先需要一个容器(_Container),容器里面会插入三个层: 底图层(_layBase):那个半透明的图片; 切割层(_layCropper):正常显示的那个部分; 控制层(_layHandle):就是控制显示的那个部分。 其中为了底图层和切割层是程序自动创建的图片,控制层是自己定义的层(程序中是一个div)。 底图层和切割层必须完全重合,程序中把这两个层都绝对定位到了左上角: this._layBase.style.top = this._layBase.style.left = this._layCropper.style.top = this._layCropper.style.left = 0; 层叠顺序也要设置一下保证各层顺序。 下面说说各部分的用: 容器:除了容器本身的用,通过设置其背景来设置透明的渐变色,由于图片本身没有背景所以要通过容器来设置; 底图层:在容器最底部,用是显示非选择区域的图片,透明效果就是在这层设置; 切割层:最关键的一个层,在底图层和控制层之间,在这个层通过clip设置其可视区域来实现切割图片的效果; 控制层:位于顶部,拖放(_drag)和缩放(_resize)效果就是在这个层实现,根据其拖放和缩放的结果控制切割层的切割效果。 这里要注意的是控制层的_drag拖放效果的Transparent要设为true(详细看拖放效果的透明背景bug部分)。 要使用缩放需要把Resize设为true,并设置各个拖拉对象,程序通过_resize设置缩放的比例和最少范围(详细看拖拉缩放效果)。 下面说说控制层如何控制切割效果: 控制层的拖放和缩放过程中加入了SetPos设置切割样式程序,在SetPos程序中根据控制层的样式设置切割层的可视区域范围: var p = this.GetPos(); this._layCropper.style.clip = "rect(" + p.Top + "px " + (p.Left + p.Width) + "px " + (p.Top + p.Height) + "px " + p.Left + "px)"; 其中GetPos程序,它可以把当前控制层的样式参数为一个对象返回: with(this._layHandle){ return { Top: offsetTop, Left: offsetLeft, Width: offsetWidth, Height: offsetHeight } } 如果理解了的话就会觉得其实原理挺简单的,不过要想出来还是要一定创意才行,为想出这个方法的人致敬! 【切割预览】 预览效果需要设置Preview属性为预览容器对象,程序会自动给容器插入一个预览对象(图片)。 预览效果的关键在于如何根据控制层的数据来给预览对象定位,这个主要在SetPreview预览效果程序中处理。 首先根据控制层的高宽比置预览对象显示的宽和高(不是图片本身的宽高哦),这里可以用GetSize程序获取: var p = this.GetPos(), s = this.GetSize(p.Width, p.Height, this.viewWidth, this.viewHeight), scale = s.Height / p.Height; 其中GetSize获取尺寸程序可以根据图片实际大小按比例缩放到要设置的大小: Code var iWidth = nowWidth, iHeight = nowHeight, scale = iWidth / iHeight; //按比例设置 if(fixHeight){ iWidth = (iHeight = fixHeight) * scale; } if(fixWidth && (!fixHeight || iWidth > fixWidth)){ iHeight = (iWidth = fixWidth) / scale; } //返回尺寸对象 return { Width: iWidth, Height: iHeight } 可以看出如果后两个参数(viewWidth和this.viewHeight)都不设置就会按原来大小显示了, 然后再按预览图跟控制层的比例设置预览图的样式参数: var pHeight = this._layBase.height * scale, pWidth = this._layBase.width * scale, pTop = o.Top * scale, pLeft = o.Left * scale; 最后根据参数对预览对象进行样式设置和切割: Code with(this._view.style){ //设置样式 width = pWidth + "px"; height = pHeight + "px"; top = - pTop + "px "; left = - pLeft + "px"; //切割预览图 clip = "rect(" + pTop + "px " + (pLeft + s.Width) + "px " + (pTop + s.Height) + "px " + pLeft + "px)"; } 这里有点烦乱,但应该不难理解就不详细说明了。 【图片大小】 容器的大小一般是固定的,但图片的大小就不是固定的,这里又可以使用SetSize程序用来设置图片大小: Code var s = this.GetSize(this._tempImg.width, this._tempImg.height, this.Width, this.Height); //设置底图和切割图 this._layBase.style.width = this._layCropper.style.width = s.Width + "px"; this._layBase.style.height = this._layCropper.style.height = s.Height + "px"; 有了图片大小就可以用来设置拖放和缩放的范围限制了: Code this._drag.mxRight = s.Width; this._drag.mxBottom = s.Height; if(this.Resize){ this._resize.mxRight = s.Width; this._resize.mxBottom = s.Height; } ps:程序中的Init程序是用来把个性设置呈现出来,所以一般设置过属性之后(例如图片地址、透明度等)就执行一次Init程序就可以显示效果了。 【ie6渲染bug】 在拖放效果中说到插入一个div解决ie的透明背景bug,这里就需要修复这个bug。 跟缩放效果配合使用时,不得不说ie6的一个渲染bug,用下面的代码测试(ie6): Code
<script>setTimeout("aa.style.height=200",0) window.__INITIAL_STATE__= {"csrf":"VV0NpLeJ-c7_I9wp7KFqpGFDN6Dw3BOuQfJE","origin":"http:\u002F\u002Fbbs.csdn.net","isMobile":false,"cookie":"uuid_tt_dd=10_3161774160-1714113448590-351068;","ip":"18.216.124.8","pageData":{"page":{"pageId":143,"title":"社区详情","keywords":"社区详情","description":"社区详情","ext":{"isMd":"true","armsfe1":"{pid:\"dyiaei5ihw@1a348e4d05c2c78\",appType:\"web\",imgUrl:\"https:\u002F\u002Farms-retcode.aliyuncs.com\u002Fr.png?\",sendResource:true,enableLinkTrace:true,behavior:true}","redPacketCfg":"{\"presetTitle\":[\"成就一亿技术人!\",\"大吉大利\",\"节日快乐\",\"Bug Free\",\"Hello World\",\"Be Greater Than Average!!\"],\"defaultTitle\":\"成就一亿技术人!\",\"preOpenSty\":{},\"redCardSty\":{}}","blogStar":"[{\"year\":\"2021\",\"enable\":true,\"communityIds\":[3859],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2021\"},{\"year\":\"2022\",\"enable\":true,\"communityIds\":[3860],\"url\":\"https:\u002F\u002Fbbs.csdn.net\u002Fsummary2022\"}]","mdVersion":"https:\u002F\u002Fcsdnimg.cn\u002Frelease\u002Fmarkdown-editor\u002F1.1.0\u002Fmarkdown-editor.js","componentSortCfg":"{ \"right\":[\"ratesInfo\",\"cty-profile\",\"pub-comp\",\"user-right-introduce\",\"post-event\",\"my-mission\",\"user-recommend\",\"user-right-rank\",\"user-right-rule\",\"user-right-adimg\"] }","show_1024":"{\"enable\":false,\"useWhitelist\":false,\"whitelist\":[76215],\"home\":\"https:\u002F\u002F1111.csdn.net\u002F\",\"logo\":\"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221104102741.png\",\"hideLive\":true}","iframes":"[\"3859\"]","pageCfg":"{\"disableDownloadPDF\": false,\"hideSponsor\":false}"}},"template":{"templateId":71,"templateComponentName":"ccloud-detail","title":"ccloud-detail","floorList":[{"floorId":562,"floorComponentName":"floor-user-content","title":"社区详情页","description":"社区详情页","indexOrder":3,"componentList":[{"componentName":"baseInfo","componentDataId":"cloud-detail1","componentConfigData":{},"relationType":3},{"componentName":"user-right-introduce","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-recommend","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rank","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-rule","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"user-right-adimg","componentDataId":"","componentConfigData":{},"relationType":2},{"componentName":"default2014LiveRoom","componentDataId":"20221024DefaultLiveRoom","componentConfigData":{},"relationType":3}]}]},"data":{"baseInfo":{"customDomain":"","uriName":"VC_Basic","communityHomePage":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic","owner":{"userName":"community_8","nickName":"基础类社区","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","position":"","companyName":""},"user":{"userRole":3,"userName":null,"nickName":null,"avatarUrl":null,"rank":null,"follow":2,"communityBase":null,"joinCollege":null,"isVIP":null},"community":{"name":"VC\u002FMFC","description":"VC\u002FMFC相关问题讨论","avatarUrl":"https:\u002F\u002Fimg-community.csdnimg.cn\u002Favatar\u002F666d6d17e5774672af753dd112cb43f4.png?x-oss-process=image\u002Fresize,m_fixed,h_88,w_88","qrCode":"","createTime":"2007-09-28","communityAvatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","communityNotice":null,"userCount":16472,"contentCount":421732,"followersCount":8257,"communityRule":"\u003Cp style=\"margin-left:.5in\"\u003E        VC\u002FMFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……\u003Cbr \u002F\u003E\n        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……\u003Cbr \u002F\u003E\n        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……\u003C\u002Fp\u003E\n","communityId":127,"bgImage":"","hashId":"den11vnj","domain":"","uriName":"VC_Basic","externalDisplay":1,"adBanner":{"img":"","url":"","adType":0,"adCon":null},"rightBanner":{"img":"","url":"","adType":0,"adCon":null},"tagId":null,"tagName":null,"communityType":1,"communityApplyUrl":"https:\u002F\u002Fmarketing.csdn.net\u002Fquestions\u002FQ2106040308026533763","joinType":0,"visibleType":0,"collapse":0,"topicMoveAble":0,"allowActions":{},"communityOwner":"community_8","tagNameInfo":{"provinceTag":null,"areaTag":null,"technologyTags":null,"customTags":null}},"tabList":[{"tabId":1286,"tabName":"全部","tabUrl":"","tabSwitch":1,"tabType":4,"tabContribute":0,"cardType":0,"indexOrder":-1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=1286","iframe":false,"sortType":1},{"tabId":1143,"tabName":"VC++技术资源","tabUrl":"https:\u002F\u002Fgithub.com\u002FTangramDev","tabSwitch":1,"tabType":0,"tabContribute":1,"indexOrder":0,"iframe":false,"sortType":1},{"tabId":689,"tabName":"VC综合技术","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":1,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=689","iframe":false,"sortType":1},{"tabId":699,"tabName":"互联网技术","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":2,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=699","iframe":false,"sortType":1},{"tabId":1110,"tabName":"MFC AppLauncher","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":3,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=1110","iframe":false,"sortType":1},{"tabId":690,"tabName":".NET 技术","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":4,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=690","iframe":false,"sortType":1},{"tabId":694,"tabName":"界面","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":5,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=694","iframe":false,"sortType":1},{"tabId":695,"tabName":"进程","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":6,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=695","iframe":false,"sortType":1},{"tabId":696,"tabName":"算法","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":7,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=696","iframe":false,"sortType":1},{"tabId":697,"tabName":"硬件\u002F系统","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":8,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=697","iframe":false,"sortType":1},{"tabId":698,"tabName":"数据库","tabUrl":"","tabSwitch":1,"tabType":1,"tabContribute":1,"cardType":0,"indexOrder":9,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=698","iframe":false,"sortType":1},{"tabId":4055743,"tabName":"博文收录","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":19,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=4055743","iframe":false,"sortType":1},{"tabId":1636846,"tabName":"Ada助手","tabUrl":"","tabSwitch":1,"tabType":2,"tabContribute":0,"cardType":0,"indexOrder":20,"url":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic?typeId=1636846","iframe":false,"sortType":1}],"dataResource":{"mediaType":"c_cloud","subResourceType":"8_c_cloud_long_text","showType":"long_text","tabId":0,"communityName":"VC\u002FMFC","communityHomePageUrl":"https:\u002F\u002Fbbs.csdn.net\u002Fforums\u002FVC_Basic","communityType":1,"content":{"id":"10064919","contentId":10064919,"cateId":0,"cateName":null,"url":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F10064919","shareUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F10064919","createTime":"2002-03-25 12:34:18","updateTime":"2021-05-28 11:10:06","resourceUsername":"tombat","best":0,"top":0,"text":null,"publishDate":"2002-03-25","lastReplyDate":"2002-03-25","type":"13","nickname":"tombat","avatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","username":"tombat","commentCount":8,"diggNum":0,"digg":false,"viewCount":532,"hit":false,"resourceSource":6,"status":10,"taskStatus":null,"expired":false,"taskCate":0,"taskAward":0,"taskExpired":null,"checkRedPacket":null,"avgScore":0,"totalScore":0,"topicTitle":"用图片作背景,当显示字时,字的背景色把图片盖住了。如何解决?","insertFirst":false,"likeInfo":null,"description":"我用一张bmp图片作程序的背景,背景上要随机显示一些字。结果每1显示字就像在背景上加了幅标语一样,图片被字的背景色形成的方块遮住了。 怎么做才能只显示字,而字以外的仍是图片呢? ","coverImg":"https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221109053740.png","content":"我用一张bmp图片作程序的背景,背景上要随机显示一些字。结果每1显示字就像在背景上加了幅标语一样,图片被字的背景色形成的方块遮住了。\u003Cbr \u002F\u003E\n怎么做才能只显示字,而字以外的仍是图片呢?\u003Cbr \u002F\u003E\n","mdContent":null,"pictures":null,"videoInfo":null,"linkInfo":null,"student":{"isCertification":false,"org":"","bala":""},"employee":{"isCertification":false,"org":"用友软件","bala":"产品总监"},"userCertification":[],"dependId":"0","dependSubType":null,"videoUrl":null,"favoriteCount":0,"favoriteStatus":false,"taskType":null,"defaultScore":null,"syncAsk":false,"videoPlayLength":null},"communityUser":null,"allowPost":false,"submitHistory":[{"user":{"registerurl":"https:\u002F\u002Fg.csdnimg.cn\u002Fstatic\u002Fuser-reg-year\u002F1x\u002F24.png","avatarurl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","nickname":"tombat","selfdesc":"","createdate":"2000-08-21 11:34:00","days":"8650","years":"24","username":"tombat","school":null,"company":null,"job":null},"userName":"tombat","event":"创建了帖子","body":"2002-03-25 12:34","editId":null}],"resourceExt":{}},"contentReply":{"pageNo":1,"pageSize":20,"totalPages":1,"totalCount":8,"total":0,"list":[{"hit":null,"hitMsg":null,"content":"SetBkMode(TRANSPARENT)\u003Cbr \u002F\u003E\n","topicTitle":null,"description":"SetBkMode(TRANSPARENT) ","id":4283322,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"in_cloud","userNickName":"in_cloud","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 12:59:23","updateTime":"2002-03-25 12:59:23","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"如果你是通过cdc来写字的话\u003Cbr \u002F\u003E\n请 dc->SetBkMode(TRANSPARENT);\u003Cbr \u002F\u003E\n dc->TextOut(........);","topicTitle":null,"description":"如果你是通过cdc来写字的话 请 dc-\u003ESetBkMode(TRANSPARENT); dc-\u003ETextOut(........);","id":4278721,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"captainliyun","userNickName":"captainliyun","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fb3c5ce420b2f45d4bb5d368e201f7568_captainliyun.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 12:47:15","updateTime":"2002-03-25 12:47:15","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"\u003Cbr \u002F\u003E\n用bitblt函数,最后的参数设为SRCAND","topicTitle":null,"description":" 用bitblt函数,最后的参数设为SRCAND","id":4278718,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"duqiang2050","userNickName":"duqiang2050","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 12:46:13","updateTime":"2002-03-25 12:46:13","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"SetBkMode(TRANSPARENT);","topicTitle":null,"description":"SetBkMode(TRANSPARENT);","id":4282554,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"2ndboy","userNickName":"2ndboy","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 12:12:12","updateTime":"2002-03-25 12:12:12","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"文字更改后,应该调用,pDoc->UpdateAllViews(NULL)","topicTitle":null,"description":"文字更改后,应该调用,pDoc-\u003EUpdateAllViews(NULL)","id":4282449,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"wxq888","userNickName":"wxq888","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Ff4c1b477f8164f5582023634fb5c0564_wxq888.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 12:03:27","updateTime":"2002-03-25 12:03:27","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"文字更改后,要重绘一次,你用invalidate()试一下,如果可以解决的话,那你再多写几行代码,只重绘显示文字的区域就行了。(invalidate()重绘整个客户区域)","topicTitle":null,"description":"文字更改后,要重绘一次,你用invalidate()试一下,如果可以解决的话,那你再多写几行代码,只重绘显示文字的区域就行了。(invalidate()重绘整个客户区域)","id":4281843,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"Xsean","userNickName":"Xsean","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 11:28:06","updateTime":"2002-03-25 11:28:06","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"dc.SetBkMode(TRANSPARENT)","topicTitle":null,"description":"dc.SetBkMode(TRANSPARENT)","id":4284521,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"hnyyy","userNickName":"hnyyy","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 02:13:03","updateTime":"2002-03-25 02:13:03","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null},{"hit":null,"hitMsg":null,"content":"这样好象不行的吧\u003Cbr \u002F\u003E\n用SetBkColor(hdc,crColor)函数试试\u003Cbr \u002F\u003E\n应该有收获","topicTitle":null,"description":"这样好象不行的吧 用SetBkColor(hdc,crColor)函数试试 应该有收获","id":4284380,"contentResourceId":10064919,"bindContentResourceId":0,"communityId":127,"username":"fhbkyo","userNickName":"fhbkyo","userAvatar":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","mdContent":null,"parentId":0,"replyName":"","replyNickName":"","bizNo":"bbs","ip":0,"status":10,"childCount":0,"topStatus":0,"recommendStatus":0,"userLike":false,"diggCount":0,"childIds":"","createTime":"2002-03-25 02:02:47","updateTime":"2002-03-25 02:02:47","formatTime":"2002-03-25","userRoleHonorary":{"userName":null,"roleId":null,"roleType":null,"roleStatus":null,"honoraryId":null,"roleName":null,"honoraryName":null,"communityNickname":null,"communitySignature":null},"child":null,"communityNickname":null,"communityReplyNickname":null,"rewardInfo":null,"checkRedPacketVO":null,"noDiggCount":null}],"maxPageSize":3000},"defaultActiveTab":1286,"recommends":[{"url":"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxxd851116\u002F1332114","title":"JavaScript \u003Cem\u003E图片\u003C\u002Fem\u003E切割效果","desc":"序一(08\u002F07\u002F21)\n\n很久之前就在一个网站的截取相片的功能中看到这个效果,也叫\u003Cem\u003E图片\u003C\u002Fem\u003E裁剪、\u003Cem\u003E图片\u003C\u002Fem\u003E剪切(设置一下也可以做出放大镜等类似的效果)。\n当时觉得很神奇,碍于水平有限,没做出来。\n前些日子突然想做一个透镜效果,就突然想到了这个效果,于是找出当年“珍藏”的代码决定一尝所愿。\n\n序二(08\u002F12\u002F06)\n\n自上一个版本的\u003Cem\u003E图片\u003C\u002Fem\u003E切割效果出来后,虽然也经常看到“框架开发这个如何如何容易”之类的评论,但也受到很多人的肯定,小弟在此感谢大家的支持。\n上一个版本由于是初次接触这类效果,而且是三个大功能一起开发,能力所限,所以仅仅是实现了效果就完成了。\n后来我知道这个效果叫ImageCropper,找了些这类效果参考,完善了切割的部分。\n近来我把其中的拖放效果和缩放效果单独出来研究,经过整理和完善,再套进切割效果,个人感觉效果已经不错了。\n要说明的是这个只是一个效果,并不是真正的切割\u003Cem\u003E图片\u003C\u002Fem\u003E,要获取真正的切割\u003Cem\u003E图片\u003C\u002Fem\u003E请参考\u003Cem\u003E图片\u003C\u002Fem\u003E切割系统。\n\n先看看效果:\n\n \n\n \n\n\u003Cem\u003E图片\u003C\u002Fem\u003E地址: \n\n\n程序说明\n\n这个效果主要分三个部分:层的拖放、层的缩放、\u003Cem\u003E图片\u003C\u002Fem\u003E切割(包括预览)。\n其中层的拖放和层的缩放我已经在其他两篇文章中有详细说明,这里就说说\u003Cem\u003E图片\u003C\u002Fem\u003E切割这部分吧。\n\n【\u003Cem\u003E图片\u003C\u002Fem\u003E切割】\n\n关于\u003Cem\u003E图片\u003C\u002Fem\u003E切割的设计,有三个方法:\n1.定位四个半透明层,遮住要\u003Cem\u003E盖住\u003C\u002Fem\u003E的部分,没试过,感觉比较麻烦;\n2.把\u003Cem\u003E图片\u003C\u002Fem\u003E设为\u003Cem\u003E背景\u003C\u002Fem\u003E图,通过设置\u003Cem\u003E背景\u003C\u002Fem\u003E图的位置来实现,但这样的缺点是只能按\u003Cem\u003E图片\u003C\u002Fem\u003E的正常比例实现,不够灵活;\n3.把\u003Cem\u003E图片\u003C\u002Fem\u003E放到切割对象里面,通过设置\u003Cem\u003E图片\u003C\u002Fem\u003E的top和left实现,这个方法是可行,但下面有更简单的方法实现;\n4.通过设置\u003Cem\u003E图片\u003C\u002Fem\u003E的clip来实现。\n\n这里介绍方法4的实现方法,这个方法是从当年“珍藏”的代码中看到的,先说说clip:\nclip的\u003Cem\u003E作\u003C\u002Fem\u003E用是“检索或设置对象的可视区域。可视区域外的部分是透明的。”\n依据上-右-下-左的顺序提供自对象左上角为(0,0)坐标计算的四个偏移数值来剪切。\n例如:\n\ndiv { position:absolute; width:60px; height:60px; clip:rect(0 20 50 10); }\n\n注意position:absolute的设置是必须的(详细看手册)。\n\n下面说说具体实现原理:\n首先需要一个容器(_Container),容器里面会插入三个层:\n底图层(_layBase):那个半透明的\u003Cem\u003E图片\u003C\u002Fem\u003E;\n切割层(_layCropper):正常\u003Cem\u003E显示\u003C\u002Fem\u003E的那个部分;\n控制层(_layHandle):就是控制\u003Cem\u003E显示\u003C\u002Fem\u003E的那个部分。\n\n其中为了底图层和切割层是程序自动创建的\u003Cem\u003E图片\u003C\u002Fem\u003E,控制层是自己定义的层(程序中是一个div)。\n底图层和切割层必须完全重合,程序中把这两个层都绝对定位到了左上角:\n\nthis._layBase.style.top = this._layBase.style.left = this._layCropper.style.top = this._layCropper.style.left = 0;\n\n层叠顺序也要设置一下保证各层顺序。\n\n下面说说各部分的\u003Cem\u003E作\u003C\u002Fem\u003E用:\n容器:除了容器本身的\u003Cem\u003E作\u003C\u002Fem\u003E用,通过设置其\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E来设置透明的渐变色,由于\u003Cem\u003E图片\u003C\u002Fem\u003E本身没有\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E所以要通过容器来设置;\n底图层:在容器最底部,\u003Cem\u003E作\u003C\u002Fem\u003E用是\u003Cem\u003E显示\u003C\u002Fem\u003E非选择区域的\u003Cem\u003E图片\u003C\u002Fem\u003E,透明效果就是在这层设置;\n切割层:最关键的一个层,在底图层和控制层之间,在这个层通过clip设置其可视区域来实现切割\u003Cem\u003E图片\u003C\u002Fem\u003E的效果;\n控制层:位于顶部,拖放(_drag)和缩放(_resize)效果就是在这个层实现,根据其拖放和缩放的结果控制切割层的切割效果。\n\n这里要注意的是控制层的_drag拖放效果的Transparent要设为true(详细看拖放效果的透明\u003Cem\u003E背景\u003C\u002Fem\u003Ebug部分)。\n要使用缩放需要把Resize设为true,并设置各个拖拉对象,程序通过_resize设置缩放的比例和最少范围(详细看拖拉缩放效果)。\n\n下面说说控制层如何控制切割效果:\n控制层的拖放和缩放过程中加入了SetPos设置切割样式程序,在SetPos程序中根据控制层的样式设置切割层的可视区域范围:\n\nvar p = this.GetPos();\nthis._layCropper.style.clip = \"rect(\" + p.Top + \"px \" + (p.Left + p.Width) + \"px \" + (p.Top + p.Height) + \"px \" + p.Left + \"px)\";\n\n其中GetPos程序,它可以把当前控制层的样式参数\u003Cem\u003E作\u003C\u002Fem\u003E为一个对象返回:\n\nwith(this._layHandle){\n return { Top: offsetTop, Left: offsetLeft, Width: offsetWidth, Height: offsetHeight }\n}\n\n如果理解了的话就会觉得其实原理挺简单的,不过要想出来还是要一定创意才行,为想出这个方法的人致敬!\n\n【切割预览】\n\n预览效果需要设置Preview属性为预览容器对象,程序会自动给容器插入一个预览对象(\u003Cem\u003E图片\u003C\u002Fem\u003E)。\n预览效果的关键在于如何根据控制层的数据来给预览对象定位,这个主要在SetPreview预览效果程序中处理。\n首先根据控制层的高宽比置预览对象\u003Cem\u003E显示\u003C\u002Fem\u003E的宽和高(不是\u003Cem\u003E图片\u003C\u002Fem\u003E本身的宽高哦),这里可以用GetSize程序获取:\n\nvar p = this.GetPos(), s = this.GetSize(p.Width, p.Height, this.viewWidth, this.viewHeight), scale = s.Height \u002F p.Height;\n\n其中GetSize获取尺寸程序可以根据\u003Cem\u003E图片\u003C\u002Fem\u003E实际大小按比例缩放到要设置的大小:\n\nCode\nvar iWidth = nowWidth, iHeight = nowHeight, scale = iWidth \u002F iHeight;\n\u002F\u002F按比例设置\nif(fixHeight){ iWidth = (iHeight = fixHeight) * scale; }\nif(fixWidth && (!fixHeight || iWidth \u003E fixWidth)){ iHeight = (iWidth = fixWidth) \u002F scale; }\n\u002F\u002F返回尺寸对象\nreturn { Width: iWidth, Height: iHeight }\n\n可以看出如果后两个参数(viewWidth和this.viewHeight)都不设置就会按原来大小\u003Cem\u003E显示\u003C\u002Fem\u003E了,\n\n然后再按预览图跟控制层的比例设置预览图的样式参数:\n\nvar pHeight = this._layBase.height * scale, pWidth = this._layBase.width * scale, pTop = o.Top * scale, pLeft = o.Left * scale;\n\n最后根据参数对预览对象进行样式设置和切割:\n\nCode\nwith(this._view.style){\n \u002F\u002F设置样式\n width = pWidth + \"px\"; height = pHeight + \"px\"; top = - pTop + \"px \"; left = - pLeft + \"px\";\n \u002F\u002F切割预览图\n clip = \"rect(\" + pTop + \"px \" + (pLeft + s.Width) + \"px \" + (pTop + s.Height) + \"px \" + pLeft + \"px)\";\n}\n\n这里有点烦乱,但应该不难理解就不详细说明了。\n\n【\u003Cem\u003E图片\u003C\u002Fem\u003E大小】\n\n容器的大小一般是固定的,但\u003Cem\u003E图片\u003C\u002Fem\u003E的大小就不是固定的,这里又可以使用SetSize程序用来设置\u003Cem\u003E图片\u003C\u002Fem\u003E大小:\n\nCode\nvar s = this.GetSize(this._tempImg.width, this._tempImg.height, this.Width, this.Height);\n\u002F\u002F设置底图和切割图\nthis._layBase.style.width = this._layCropper.style.width = s.Width + \"px\";\nthis._layBase.style.height = this._layCropper.style.height = s.Height + \"px\";\n\n有了\u003Cem\u003E图片\u003C\u002Fem\u003E大小就可以用来设置拖放和缩放的范围限制了:\n\nCode\nthis._drag.mxRight = s.Width; this._drag.mxBottom = s.Height;\nif(this.Resize){ this._resize.mxRight = s.Width; this._resize.mxBottom = s.Height; }\n\nps:程序中的Init程序是用来把个性设置呈现出来,所以一般设置过属性之后(例如\u003Cem\u003E图片\u003C\u002Fem\u003E地址、透明度等)就执行一次Init程序就可以\u003Cem\u003E显示\u003C\u002Fem\u003E效果了。\n\n【ie6渲染bug】\n\n在拖放效果中说到插入一个div\u003Cem\u003E解决\u003C\u002Fem\u003Eie的透明\u003Cem\u003E背景\u003C\u002Fem\u003Ebug,这里就需要修复这个bug。\n跟缩放效果配合使用时,不得不说ie6的一个渲染bug,用下面的代码测试(ie6):\n\nCode\n\u003C!DOCTYPE html PUBLIC \"-\u002F\u002FW3C\u002F\u002FDTD XHTML 1.0 Transitional\u002F\u002FEN\" \"http:\u002F\u002Fwww.w3.org\u002FTR\u002Fxhtml1\u002FDTD\u002Fxhtml1-transitional.dtd\"\u003E\n\u003Chtml\u003E\n\u003Cbody\u003E\n\u003Cdiv id=\"aa\" style=\"width:300px;height:100px;border:1px solid;\"\u003E\u003Cdiv style=\"background:#00f;height:100%;\"\u003E\u003C\u002Fdiv\u003E\u003C\u002Fdiv\u003E\n\u003Cscript\u003EsetTimeout(\"aa.style.height=200\",0)\u003C\u002Fscript\u003E\n\u003C\u002Fbody\u003E\n\u003C\u002Fhtml\u003E\n\n可以对比ie7的效果,可以看出里面的div虽然高度设置了100%,但在外面的div修改高度之后,却不知什么原因没有填充了(外面的div渲染后,没有触发里面的div再渲染)。\n\n\u003Cem\u003E解决\u003C\u002Fem\u003E这个bug的关键是使里面的div能再渲染,这里有几个方法可以\u003Cem\u003E解决\u003C\u002Fem\u003E:\n1,设置控制层的overflow为hidden,好处是只需要设置一次,但这个样式会影响其他效果,当然在不影响效果的情况下这个是最好的方法;\n2,在缩放的时候,通过修改控制层的某些样式,使里面的div再渲染,这样的样式包括zoom,display(应该还有其他吧);\n3,在缩放的时候,通过修改插入div的某些样式,使其再渲染,这样的样式包括display(zoom也不行);\n程序中是通过修改_layHandle的zoom\u003Cem\u003E解决\u003C\u002Fem\u003E的:\n\nif(isIE6){ with(this._layHandle.style){ zoom = .9; zoom = 1; }; };\n\nps:这个bug的原因貌似跟ie的layout有关,但我查了一下还是没弄清楚,谁有详细的介绍或解析务必跟我分享一下啊。\n\n\n使用说明\n\n实例化时有三个必要参数:容器对象、控制层、\u003Cem\u003E图片\u003C\u002Fem\u003E地址:\n\nvar ic = new ImgCropper(\"bgDiv\", \"dragDiv\", \"1.jpg\");\n\n有以下这些可选参数和属性:\n属性:默认值\u002F\u002F说明\nOpacity: 50,\u002F\u002F透明度(0到100)\nColor: \"\",\u002F\u002F\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E\nWidth: 0,\u002F\u002F\u003Cem\u003E图片\u003C\u002Fem\u003E高度\nHeight: 0,\u002F\u002F\u003Cem\u003E图片\u003C\u002Fem\u003E高度\n\u002F\u002F缩放触发对象\nResize: false,\u002F\u002F是否设置缩放\nRight: \"\",\u002F\u002F右边缩放对象\nLeft: \"\",\u002F\u002F左边缩放对象\nUp: \"\",\u002F\u002F上边缩放对象\nDown: \"\",\u002F\u002F下边缩放对象\nRightDown: \"\",\u002F\u002F右下缩放对象\nLeftDown: \"\",\u002F\u002F左下缩放对象\nRightUp: \"\",\u002F\u002F右上缩放对象\nLeftUp: \"\",\u002F\u002F左上缩放对象\nMin: false,\u002F\u002F是否最小宽高限制(为true时下面min参数有用)\nminWidth: 50,\u002F\u002F最小宽度\nminHeight: 50,\u002F\u002F最小高度\nScale: false,\u002F\u002F是否按比例缩放\nRatio: 0,\u002F\u002F缩放比例(宽\u002F高)\n\u002F\u002F预览对象设置\nPreview: \"\",\u002F\u002F预览对象\nviewWidth: 0,\u002F\u002F预览宽度\nviewHeight: 0\u002F\u002F预览高度","createTime":"2009-05-20 22:56:19","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1332114-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1332114-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxxd851116\u002F1332114\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1332114-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"1\",\"dest\":\"https:\u002F\u002Fdownload.csdn.net\u002Fdownload\u002Fxxd851116\u002F1332114\",\"strategy\":\"2~default~OPENSEARCH~Paid\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-download-2~default~OPENSEARCH~Paid-1-1332114-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"download"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fhbiao68\u002Farticle\u002Fdetails\u002F84993292","title":"\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E和\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E共存,\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E覆盖色","desc":"文章参考\n\nhttps:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F390695803\n\n问题描述\n今天公司要做一个大屏展示,\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E是\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E+透明\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E合并而成,同事使用的是AI工具制\u003Cem\u003E作\u003C\u002Fem\u003E的\u003Cem\u003E图片\u003C\u002Fem\u003E,同事提供了一个透明的\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E,然后让我\u003Cem\u003E显示\u003C\u002Fem\u003E最终的效果,按照\n我的理解\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E应该是与\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E不能共存的,查询了相关资料,当\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E和\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E同时\u003Cem\u003E作\u003C\u002Fem\u003E用的时候,\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E会覆盖\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E,没有覆盖到的就\u003Cem\u003E显示\u003C\u002Fem\u003E\u003Cem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E色\u003C\u002Fem\u003E,因...","createTime":"2019-07-15 00:07:29","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-84993292-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-84993292-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fhbiao68\u002Farticle\u002Fdetails\u002F84993292\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-84993292-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"2\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fhbiao68\u002Farticle\u002Fdetails\u002F84993292\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-2-84993292-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39685762\u002Farticle\u002Fdetails\u002F111741293","title":"html内容被\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E遮住怎么办_完美实现文\u003Cem\u003E字\u003C\u002Fem\u003E置于\u003Cem\u003E图片\u003C\u002Fem\u003E之上且\u003Cem\u003E背景\u003C\u002Fem\u003E半透明","desc":"之前发过一篇关于 将\u003Cem\u003E图片\u003C\u002Fem\u003E的说明文\u003Cem\u003E字\u003C\u002Fem\u003E\u003Cem\u003E显示\u003C\u002Fem\u003E在\u003Cem\u003E图片\u003C\u002Fem\u003E之上且\u003Cem\u003E背景\u003C\u002Fem\u003E半透明效果 的文章,讲述了如何将文\u003Cem\u003E字\u003C\u002Fem\u003E置于\u003Cem\u003E图片\u003C\u002Fem\u003E之上且\u003Cem\u003E背景\u003C\u002Fem\u003E半透明,但那个\u003Cem\u003E解决\u003C\u002Fem\u003E办法会出现一个问题,就是\u003Cem\u003E背景\u003C\u002Fem\u003E虽然半透明了,但文\u003Cem\u003E字\u003C\u002Fem\u003E也会半透明,今天发现百度旅游上的实现方法,很完美地实现这个功能,现把代码共享如下:复制代码代码如下:文\u003Cem\u003E字\u003C\u002Fem\u003E置于\u003Cem\u003E图片\u003C\u002Fem\u003E之上且\u003Cem\u003E背景\u003C\u002Fem\u003E半透明 标准之路www.aa25.cna.title { color:#D3D3D4; backgrou...","createTime":"2020-12-20 14:57:19","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-111741293-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-111741293-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39685762\u002Farticle\u002Fdetails\u002F111741293\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-111741293-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"3\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39685762\u002Farticle\u002Fdetails\u002F111741293\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-3-111741293-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39593744\u002Farticle\u002Fdetails\u002F111741295","title":"html内容被\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E遮住怎么办_定义BODY\u003Cem\u003E背景\u003C\u002Fem\u003E图后,DIV的\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E\u003Cem\u003E显示\u003C\u002Fem\u003E不全(已\u003Cem\u003E解决\u003C\u002Fem\u003E)...","desc":"你的位置:问答吧-> WEB标准-> 问题详情定义BODY\u003Cem\u003E背景\u003C\u002Fem\u003E图后,DIV的\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E\u003Cem\u003E显示\u003C\u002Fem\u003E不全(已\u003Cem\u003E解决\u003C\u002Fem\u003E)一个有趣的问题,当BODY有\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E的时候,BODY里的DIV一旦也有\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E,就\u003Cem\u003E显示\u003C\u002Fem\u003E不完全,被BODY的\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E挡住了下面一部分...IE下被挡住的部分比较小,火狐下被挡住部分很大...两者都十分明显。当我把...","createTime":"2020-12-20 14:57:22","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-111741295-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-111741295-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39593744\u002Farticle\u002Fdetails\u002F111741295\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-111741295-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"4\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fweixin_39593744\u002Farticle\u002Fdetails\u002F111741295\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-4-111741295-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"},{"url":"https:\u002F\u002Fblog.csdn.net\u002Fzhw0596\u002Farticle\u002Fdetails\u002F79951501","title":"div嵌套时\u003Cem\u003E背景\u003C\u002Fem\u003E\u003Cem\u003E图片\u003C\u002Fem\u003E不\u003Cem\u003E显示\u003C\u002Fem\u003E问题\u003Cem\u003E解决\u003C\u002Fem\u003E方法","desc":"1.   常见的子div\u003Cem\u003E背景\u003C\u002Fem\u003E把父div\u003Cem\u003E背景\u003C\u002Fem\u003E给\u003Cem\u003E盖住\u003C\u002Fem\u003E了\u003Cem\u003E解决\u003C\u002Fem\u003E方法:在他们两个div样式里设置z-index属性值,父div的值大于子div的值,值越大越靠近屏幕,不过请注意的是z-index生效的前提是div的position属性值为absolute\u002Frelative\u002Ffixed….2.  IE6下不\u003Cem\u003E显示\u003C\u002Fem\u003E\u003Cem\u003E背景\u003C\u002Fem\u003E图的问题\u003Cem\u003E解决\u003C\u002Fem\u003E方法:检查\u003Cem\u003E图片\u003C\u002Fem\u003E路径对不对,要注意相对路径和绝对路径,还有就是\u003Cem\u003E图片\u003C\u002Fem\u003E的命名尽量避免汉\u003Cem\u003E字\u003C\u002Fem\u003E,...","createTime":"2018-04-15 18:13:26","dataReportQuery":"spm=1035.2023.3001.6557&utm_medium=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-79951501-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default&depth_1-utm_source=distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-79951501-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default","dataReportClick":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fzhw0596\u002Farticle\u002Fdetails\u002F79951501\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-79951501-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","dataReportView":"{\"mod\":\"popu_645\",\"index\":\"5\",\"dest\":\"https:\u002F\u002Fblog.csdn.net\u002Fzhw0596\u002Farticle\u002Fdetails\u002F79951501\",\"strategy\":\"2~default~OPENSEARCH~Rate\",\"extra\":\"{\\\"utm_medium\\\":\\\"distribute.pc_relevant_bbs_down_v2.none-task-blog-2~default~OPENSEARCH~Rate-5-79951501-bbs-10064919.264^v3^pc_relevant_bbs_down_v2_default\\\",\\\"dist_request_id\\\":\\\"1714113448681_84577\\\"}\",\"spm\":\"1035.2023.3001.6557\"}","type":"blog"}],"staffDOList":[{"id":null,"communityId":127,"username":"community_8","userNickname":"基础类社区","roleCode":1,"status":1,"createUsername":"","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Fdefault.jpg!1","createTime":"2021-05-12 18:05:00","updateTime":"2021-05-12 18:05:00","lastLoginTime":"2021-05-12 18:05:00"},{"id":null,"communityId":127,"username":"sunhui","userNickname":"Web++","roleCode":2,"status":1,"createUsername":"bbs_assistant","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002F4da5553c0cca498aa6129165b431f71b_sunhui.jpg!1","createTime":"2021-07-27 15:41:46","updateTime":"2021-07-27 15:41:46","lastLoginTime":"2021-07-27 15:41:46"},{"id":null,"communityId":127,"username":"CharlesSimonyi","userNickname":"encoderlee","roleCode":2,"status":1,"createUsername":"bbs_assistant","updateUsername":"","avatarUrl":"https:\u002F\u002Fprofile-avatar.csdnimg.cn\u002Ffa9dbe2c89e44d1295ce730595971342_charlessimonyi.jpg!1","createTime":"2021-07-05 14:02:33","updateTime":"2021-07-05 14:02:33","lastLoginTime":"2021-07-05 14:02:33"}],"communityConfig":{"scoreType":0,"scoreItems":{"0":"给本帖投票","1":"锋芒小试,眼前一亮","2":"潜力巨大,未来可期","3":"持续贡献,值得关注","4":"成绩优异,大力学习","5":"贡献巨大,全力支持"}},"shouldApply":false,"subscribeAble":false,"operatorAble":false,"commentNeedJoinCommunity":false},"default2014LiveRoom":[{"itemType":"","description":"高峰论坛","title":"2022 技术英雄会","url":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002Fcsdnnews\u002FfsNR5NWp?chat=1&title=1&footer=1","images":["https:\u002F\u002Fimg-home.csdnimg.cn\u002Fimages\u002F20221016050009.png"],"ext":{"time":"9:00","liveRoomUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fcsdnnews\u002FfsNR5NWp"}}]},"isGooglebot":false,"canonical":"https:\u002F\u002Fwww.csdn.net\u002Ftopics\u002F10064919","openUrl":"","isApp":false,"localUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F10064919","typeId":"index","hasIndex":false},"CFG":{"ALIPLAYER_VERSION":"v4","ALIPLAYER_H5_VERSION":"mobile_v1","ENV":"prod","ROOT_URL":"https:\u002F\u002Fcms-mall.csdn.net\u002F","VUE_APP_API_URL_SERVER":"http:\u002F\u002Fcms-community-api.internal.csdn.net\u002F","VUE_APP_API_URL":"https:\u002F\u002Fcms-api.csdn.net\u002F","LOGIN_URL":"https:\u002F\u002Fpassport.csdn.net\u002Faccount\u002Flogin","VUE_APP_DOMAIN_SKILL":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_DOMAIN_PATH":"https:\u002F\u002Fedu.csdn.net\u002F","VUE_APP_COMMUNITY_API_URL":"https:\u002F\u002Fcommunity-api.csdn.net\u002F","VUE_APP_CCLOUD_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fcommunity-cloud\u002Fv1\u002F","VUE_APP_SKILL_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fskilltree\u002Fapi\u002F","VUE_APP_SEARCH_PLUGIN_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002Fsearchplugin\u002F","VUE_APP_COMMUNITY_ASK_API_URL":"https:\u002F\u002Fmp-ask.csdn.net\u002F","VUE_APP_ME_URL":"https:\u002F\u002Fme.csdn.net\u002F","VUE_APP_CCLOUD_RESUME":"https:\u002F\u002Fbizapi.csdn.net\u002Fjob-api\u002F","VUE_APP_CCLOUD_MAIN":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_UC":"https:\u002F\u002Fwww.csdn.net\u002F","VUE_APP_CCLOUD_BZP_API_URL":"https:\u002F\u002Fbizapi.csdn.net\u002F","VUE_APP_CCLOUD_START_API_URL":"https:\u002F\u002Fmp-action.csdn.net\u002F","VUE_APP_PRACTIVE":"https:\u002F\u002Fbizapi.csdn.net\u002Fdaily-practice\u002F","VUE_APP_CCLOUD_HOSTPATH":"https:\u002F\u002Fbbs.csdn.net\u002F"},"queries":{"pageId":[],"domain":["ccloud.csdn.net\u002Fccloud\u002Fdetail1"],"id":["10064919"],"deviceType":"pc","isSpider":"","hostname":["bbs.csdn.net"]},"basePath":"bbs.csdn.net\u002Fccloud\u002Ftopics\u002F10064919","hrefUrl":"https:\u002F\u002Fbbs.csdn.net\u002Ftopics\u002F10064919","active":0,"navBarFixed":false,"title":"用图片作背景,当显示字时,字的背景色把图片盖住了。如何解决?","isLive":false,"contentType":{"text":"text","picture":"picture","link":"link","video":"video","vote":"vote","live":"live","blog":"blog","long_text":"long_text","task_text":"task_text"},"liveUrl":"https:\u002F\u002Flive.csdn.net\u002Froom\u002Fiframe\u002F","spmExtra":{"id":127,"topicId":10064919},"keywords":"","description":"以下内容是CSDN社区关于用图片作背景,当显示字时,字的背景色把图片盖住了。如何解决?相关内容,如果想了解更多关于VC\u002FMFC社区其他内容,请访问CSDN社区。"}; 可以对比ie7的效果,可以看出里面的div虽然高度设置了100%,但在外面的div修改高度之后,却不知什么原因没有填充了(外面的div渲染后,没有触发里面的div再渲染)。 解决这个bug的关键是使里面的div能再渲染,这里有几个方法可以解决: 1,设置控制层的overflow为hidden,好处是只需要设置一次,但这个样式会影响其他效果,当然在不影响效果的情况下这个是最好的方法; 2,在缩放的时候,通过修改控制层的某些样式,使里面的div再渲染,这样的样式包括zoom,display(应该还有其他吧); 3,在缩放的时候,通过修改插入div的某些样式,使其再渲染,这样的样式包括display(zoom也不行); 程序中是通过修改_layHandle的zoom解决的: if(isIE6){ with(this._layHandle.style){ zoom = .9; zoom = 1; }; }; ps:这个bug的原因貌似跟ie的layout有关,但我查了一下还是没弄清楚,谁有详细的介绍或解析务必跟我分享一下啊。 使用说明 实例化时有三个必要参数:容器对象、控制层、图片地址: var ic = new ImgCropper("bgDiv", "dragDiv", "1.jpg"); 有以下这些可选参数和属性: 属性:默认值//说明 Opacity: 50,//透明度(0到100) Color: "",//背景 Width: 0,//图片高度 Height: 0,//图片高度 //缩放触发对象 Resize: false,//是否设置缩放 Right: "",//右边缩放对象 Left: "",//左边缩放对象 Up: "",//上边缩放对象 Down: "",//下边缩放对象 RightDown: "",//右下缩放对象 LeftDown: "",//左下缩放对象 RightUp: "",//右上缩放对象 LeftUp: "",//左上缩放对象 Min: false,//是否最小宽高限制(为true时下面min参数有用) minWidth: 50,//最小宽度 minHeight: 50,//最小高度 Scale: false,//是否按比例缩放 Ratio: 0,//缩放比例(宽/高) //预览对象设置 Preview: "",//预览对象 viewWidth: 0,//预览宽度 viewHeight: 0//预览高度

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧