原创 VC 背景填充位图的几种方法

2007-9-29 21:15 5238 8 8 分类: 软件与OS

    VC,工作中偶尔做个上位机软件,还总做不好,也是边上网查,边做,一次心血来潮,想美化下做好的程序,软件功底不好,只好上网学习,这个方法,自认为不错,值得一用,发上来,希望对为了加背景,象以前的我一样在网上乱翻的人有所帮助.


    高手请一笑而过,要是能指点一二,更是感激不尽.


 


1、在资源视图中 填加位图
2
、在nameDlg.cpp中填加<?xml:namespace prefix = o ns = "urn:schemas-microsoft-com:office:office" />


CBitmap m_bmZD,m_bmBack;


CBrush m_brZD,m_brBack;


 


和在初始化函数中  BOOL nameDlg::OnInitDialog(){填加


 


     VERIFY(m_bmZD.LoadBitmap(IDB_BG));  // IDB_BG 为位图ID       


     VERIFY(m_brZD.CreatePatternBrush(&m_bmZD));  


     VERIFY(m_bmBack.LoadBitmap(IDB_BG));


     VERIFY(m_brBack.CreatePatternBrush(&m_bmBack));  


    


3、填加利用向导映射AboutDlgWM_CTLCOLOR消息,产生函数


HBRUSH nameDlg::OnCtlColor(CDC* pDC, CWnd* pWnd, UINT nCtlColor)


{


     HBRUSH hbr = CDialog::OnCtlColor(pDC, pWnd, nCtlColor);


 


     pDC->SetBkMode(TRANSPARENT);    


     if (nCtlColor==CTLCOLOR_EDIT)return hbr;


     else if(nCtlColor == CTLCOLOR_LISTBOX  )


     return m_brBack;


     return m_brZD;    


 


     // TODO:  如果默认的不是所需画笔,则返回另一个画笔


     //return hbr;


} 

文章评论0条评论)

登录后参与讨论
我要评论
0
8
关闭 站长推荐上一条 /2 下一条