CreateRegionFromFile





5.00/5 (13投票s)
2000年5月27日

169864

3444
一个非常简单的函数,用于从 *.bmp 文件创建区域
引言
这个非常简单的函数从位图 (.bmp) 文件创建区域。支持 8、16、24 和 32 位颜色模式。
该函数接受两个参数
hBmp
- 位图图像的句柄color
- 透明颜色
HRGN CreateRgnFromFile( HBITMAP hBmp, COLORREF color );
使用该函数非常简单。例如,如果您希望设置对话框的窗口形状,则在您的 OnInitDialog
处理程序中,执行以下操作
BOOL CFileRgnDlg::OnInitDialog()
{
CDialog::OnInitDialog();
// load image
HBITMAP hBmp = (HBITMAP)LoadImage( AfxGetInstanceHandle(),
"Rgn.bmp", IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE );
// if fail - nothing to do
if ( hBmp == NULL ) return TRUE;
// create region, let the RED color be transparent
HRGN hRgn = CreateRgnFromFile( hBmp, RGB(255,0,0) );
// build memory dc for background
CDC* dc = GetDC();
m_dcBkGrnd = CreateCompatibleDC( dc->m_hDC );
ReleaseDC( dc );
// select background image
SelectObject( m_dcBkGrnd, hBmp );
// set window size the same as image size
SetWindowPos( NULL, 0, 0, m_dwWidth, m_dwHeight,
SWP_NOZORDER | SWP_NOMOVE );
// assign region to window
SetWindowRgn( hRgn, FALSE );
return TRUE;
}
历史
- 2001年12月8日
- 16位模式的剪切和粘贴错误(白色作为透明不起作用)
- 最后一列的像素未被使用
- 现在可以使用未对齐(按宽度)的图像
- 2001年6月11日
ExtCreateRegion
NT 问题(感谢 Martin 的报告)
许可证
本文未附加明确的许可证,但可能在文章文本或下载文件本身中包含使用条款。如有疑问,请通过下面的讨论区联系作者。
作者可能使用的许可证列表可以在此处找到。