WEB开发网
开发学院软件开发VC 一个透明位图类的例子 阅读

一个透明位图类的例子

 2009-02-21 20:00:01 来源:WEB开发网   
核心提示: 为该类添加一个供外部调用的函数SetPic:void CMyWnd::SetPic(UINT nIDPic, int nLeft, int nTop){if(NULL != m_bitmap.m_hObject){m_bitmap.DeleteObject();}m_bitmap.Load

为该类添加一个供外部调用的函数SetPic:void CMyWnd::SetPic(UINT nIDPic, int nLeft, int nTop)
{
  if(NULL != m_bitmap.m_hObject)
  {
    m_bitmap.DeleteObject();
  }
  m_bitmap.LoadBitmap(nIDPic);
  m_bitmap.GetBitmap(&m_bmp);
  int nRight = m_bmp.bmWidth + nLeft;
  int nBottom = m_bmp.bmHeight + nTop;
  Create(NULL, NULL, WS_CHILD, CRect(nLeft, nTop, nRight,  nBottom),
      AfxGetApp()->m_pMainWnd, nIDPic);
  ShowWindow(SW_SHOWNORMAL);
}

最后别忘了在MyWnd.cpp文件的前面加上:

#define TRANSCOLOR RGB(255,0,255)

这是定义的用作透明色的紫色,这样,透明位图类就写完了。

现在在对话框XXXDlg.h头文件中加上一个CmyWnd m_wnd,用来做裁减图象的承载窗口对象,并在BOOL CTransBMPDlg::OnInitDialog()函数中加上一条代码:

m_wnd.SetPic(IDB_BITMAP1, 10, 10);

这样就大功告成啦,还简单吧^_^。

编程环境:Visual C++6.0 & MFC

上一页  1 2 

Tags:一个 透明 位图

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接