⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_62274.htm

📁 vc
💻 HTM
字号:
<p>
序号:62274 发表者:汉时明月 发表日期:2003-11-25 19:52:48
<br>主题:各位大虾,怎样使位图的背景色与对话框的颜色一样???
<br>内容:如题:如果要在对话框的picture 控件里显示的位图的背景色与对话框颜色一致,如何作?就像背景透明那样,只显示主要的图像 <BR>谢谢各位<BR>
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:萨达姆的黑手掌 回复日期:2003-11-25 22:04:56
<br>内容:&nbsp;&nbsp;&nbsp;&nbsp;我记得在directdraw里是设关键色,MFC或是API有没有这种函数就不知道了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:BigJames 回复日期:2003-11-26 11:31:40
<br>内容:那可以就得自己装载控制bmp了。<BR>看一下CImageList,在create的时候,指定和bmp背景色匹配的掩码,然后在你需要的地方/时间把他画到屏幕上就行了。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
<font color=red>答案被接受</font><br>回复者:元元 回复日期:2003-12-02 15:25:15
<br>内容:对话框的picture 控件的hdc, hBitmap指的是位图句柄,xStart和yStart在控件上<BR>开始画的位置,位图的背景色,这是你需要屏蔽的,用法如下所示:<BR>DrawTransparent(hDC, hBitmap, 0, 0, RGB(255, 255, 255));<BR>RGB(255,255,255)表示要屏蔽图像中的白色<BR><BR>void DrawTransparent( HDC hdc, HBITMAP hBitmap, int xStart, int yStart, <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; COLORREF cTransparentColor)<BR>{<BR>&nbsp;&nbsp; BITMAP&nbsp;&nbsp;&nbsp;&nbsp; bm;<BR>&nbsp;&nbsp; COLORREF&nbsp;&nbsp; cColor;<BR>&nbsp;&nbsp; HBITMAP&nbsp;&nbsp;&nbsp;&nbsp;bmBackground,&nbsp;&nbsp;bmObject,&nbsp;&nbsp;bmSave;&nbsp;&nbsp; <BR>&nbsp;&nbsp; HDC&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hdcBackground, hdcObject, hdcTemp,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hdcSave;<BR>&nbsp;&nbsp; POINT&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;ptSize;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp; GetObject( hBitmap,&nbsp;&nbsp;sizeof( bm ), (LPSTR)&amp;bm );<BR>&nbsp;&nbsp; ptSize.x = bm.bmWidth;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;&nbsp; ptSize.y = bm.bmHeight;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR><BR>&nbsp;&nbsp; //-------------------------------------------------------------<BR>&nbsp;&nbsp; //&nbsp;&nbsp; Create compatible DC<BR>&nbsp;&nbsp; //-------------------------------------------------------------<BR>&nbsp;&nbsp; hdcTemp = CreateCompatibleDC( hdc );&nbsp;&nbsp; <BR>&nbsp;&nbsp; hdcSave = CreateCompatibleDC( hdc );<BR>&nbsp;&nbsp; hdcBackground = CreateCompatibleDC( hdc );<BR>&nbsp;&nbsp; hdcObject = CreateCompatibleDC( hdc );&nbsp;&nbsp;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; SelectObject( hdcTemp, hBitmap ); <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;// save the bitmap<BR>&nbsp;&nbsp; bmSave=CreateCompatibleBitmap(hdc,ptSize.x, ptSize.y);<BR>&nbsp;&nbsp; SelectObject(hdcSave,bmSave);<BR>&nbsp;&nbsp; BitBlt( hdcSave, 0, 0, ptSize.x, ptSize.y, hdcTemp, 0, 0, SRCCOPY );<BR><BR>&nbsp;&nbsp; //---------------------------------------------------------------<BR>&nbsp;&nbsp; // Create a bitmap for each DC. DCs are required for a number of<BR>&nbsp;&nbsp; // GDI functions. Monochrome DC ------get a white background<BR>&nbsp;&nbsp; //---------------------------------------------------------------<BR>&nbsp;&nbsp; bmBackground&nbsp;&nbsp; = CreateBitmap( ptSize.x, ptSize.y, 1, 1, NULL );<BR>&nbsp;&nbsp; SelectObject( hdcBackground, bmBackground );&nbsp;&nbsp;<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; cColor = SetBkColor( hdcTemp, cTransparentColor );&nbsp;&nbsp;<BR>&nbsp;&nbsp; BitBlt( hdcBackground, 0, 0, ptSize.x, ptSize.y, hdcTemp, 0, 0, SRCCOPY );<BR>&nbsp;&nbsp; SetBkColor( hdcTemp, cColor );&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp; //---------------------------------------------------------------<BR>&nbsp;&nbsp; // Monochrome DC&nbsp;&nbsp;--- get a white object<BR>&nbsp;&nbsp; //---------------------------------------------------------------<BR>&nbsp;&nbsp; bmObject = CreateBitmap( ptSize.x, ptSize.y, 1, 1, NULL );<BR>&nbsp;&nbsp; SelectObject( hdcObject, bmObject );<BR>&nbsp;&nbsp; BitBlt(hdcObject, 0, 0, ptSize.x, ptSize.y, hdcBackground, 0, 0, NOTSRCCOPY );<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitBlt( hdc, xStart, yStart, ptSize.x, ptSize.y, hdcBackground, 0, 0, SRCAND );&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitBlt( hdcTemp, 0, 0, ptSize.x, ptSize.y, hdcObject, 0, 0, SRCAND);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;BitBlt( hdc, xStart, yStart, ptSize.x, ptSize.y, hdcTemp, 0, 0, SRCPAINT );<BR><BR>&nbsp;&nbsp; BitBlt( hdcTemp, 0, 0, ptSize.x, ptSize.y, hdcSave, 0, 0, SRCCOPY );//restore<BR><BR>&nbsp;&nbsp; DeleteDC( hdcTemp );<BR>&nbsp;&nbsp; DeleteDC( hdcBackground);<BR>&nbsp;&nbsp; DeleteDC( hdcObject );<BR>&nbsp;&nbsp; DeleteDC( hdcSave );<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; DeleteObject( bmBackground );<BR>&nbsp;&nbsp; DeleteObject( bmObject );<BR>&nbsp;&nbsp; DeleteObject( bmSave );&nbsp;&nbsp; <BR>&nbsp;&nbsp; <BR>}<BR>
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -