当前位置:首页 » 业界相关

Dialog的背景色怎样改?(希望不同的Dialog有不同的背景色怎样做?)

 Advertisement:

热门软件下载:


dialog的背景色怎样改?(希望不同的dialog有不同的背景色怎样做?)

推荐阅读

  • 联想QDI主板全面启用“闪电开机” [详细内容]
  • 江苏长电科技股份有限公司(展位号:2GG1) [详细内容]
  • 涉嫌操纵SRAM价格 索尼接受反垄断调查 [详细内容]
  • Sun设在斯德哥尔摩的无线技术保障中心正式启用 [详细内容]
  • 关于《浅谈智能与非智能》的回复与补充 [详细内容]
  • 2006年秋季(第68届)全国电子展慧聪展台效果图(展位号:3DG2) [详细内容]
  • 因特网七个新顶级域名明年启用 [详细内容]
  • 网友回答:
    网友:jwyhit

    比较常用的三种方法  
      1  
      在对话框调用domodal()函数前调用setdialogbkcolor  
      这个函数的原型是void   setdialogbkcolor,colorref   clrctltext=rgb,他只有两个参数:  
      只要设置参数cltctlbk旧可以改变背景色了  
       
      2  
       
      重载onctlcolor(cdc*   pdc,cwnd*   pwnd,unit   nctlcolor)函数,即对wm_ctlcolor消息的处理  
       
      此函数回返回一个画刷句柄,所以只要返回一个其他颜色的画刷句柄就可以改变对话矿的颜色了  
       
      3  
       
      重载onpaint即对wn_paint   消息的处理

    网友:ah

    来晚一步,都让楼上的给说完了  
      我补充一点,如果自已画的话要取得客户区的dc句柄才行,否则就是画整个窗口了

    网友:nuaawenlin

    cclientdc   dc(this)  
      crect   rect;  
      getclientrect(rect)  
      dc.fillsolidrect(0,0,rect.right,rect.bottom)

    网友:loopyifly

    一.设置对话背景:  
      如果你想用1位图作为对话背景,提供下面方法:  
      重载   onpaint   函数,对话框的   onpaint   默认有两个处理,在第二个中加入这些代码:    
      if   (isiconic())    
      {    
      ...    
      ...    
      }    
      else    
      {    
      //   开始画背景    
      cpaintdc   dc(   this   );    
      cdc   back;    
      cbitmap   bmp;    
       
      bmp.loadbitmap(   idb_bitmap1   );   //   建立背景图片    
      back.createcompatibledc(   &dc   );   //   建立一个图形缓冲并载入背景图    
      back.selectobject(   &bmp   );    
       
      dc.bitblt(   0,   0,   100,   100,   &back,   0,   0,   srccopy   );   //   画在对话框中,可以把   100,   100   改成具体的对话框大小    
       
      bmp.deleteobject();    
       
       
      cdialog::onpaint();    
      }    
       
      二:设置控件背景:  
      1   设置cstatic控件背景:  
      (1).从cstatic派生一个类cmystatic;  
      (2).添加成员变量cbrush   m_brush;  
      (3).  
      cmystatic::cmystatic()  
      {  
      m_brush.createsolidbrush(rgb(197,200,208));  
      }  
      (4)响应=wm_ctlcolor消息:  
      hbrush   cmystatic::ctlcolor(cdc*   pdc,   uint   nctlcolor)    
      {  
      //   todo:   change   any   attributes   of   the   dc   here  
       
      pdc->settextcolor(rgb(0,0,0));  
      pdc->setbkmode(transparent);    
       
      //   todo:   return   a   non-null   brush   if   the   parents   handler   should   not   be   called  
      return   (hbrush)m_brush;  
      }  
      其它控件和它类似。

    .  

    相关评论

    Login