一个透明位图类的例子
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
更多精彩
赞助商链接