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

📄 subject_33392.htm

📁 vc
💻 HTM
字号:
<p>
序号:33392 发表者:黄豆豆 发表日期:2003-03-19 20:33:16
<br>主题:关于一个对话框的问题,急
<br>内容:如何在对话框界面上显示24位色的bmp文件或者gif、jpg文件,我用picture控件加载的bmp文件只能显示256色,好难看哟:(<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>
<font color=red>答案被接受</font><br>回复者:tjhe 回复日期:2003-03-19 21:19:04
<br>内容:对于位图文件,可用LoadImage:<BR>HBITMAP hBitmap;//可作为对话类成员<BR><BR>//在一合适地方初始化,如在OnInitDialog等<BR>&nbsp;&nbsp;&nbsp;&nbsp;hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(),<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;lpszImageFile,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;IMAGE_BITMAP,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,0,<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;LR_LOADFROMFILE|LR_CREATEDIBSECTION);<BR>&nbsp;&nbsp;&nbsp;&nbsp;ASSERT(hBitmap);<BR><BR><BR>响应WM_ERASEBKGND消息,在<BR>OnEraseBkgnd(CDC* pDC) 中加入:&nbsp;&nbsp;&nbsp;&nbsp;<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;CRect Rect; <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;GetClientRect (&amp;Rect); //获取客户区大小 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;int x=0, y=0; <BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap* pbmp = CBitmap::FromHandle(hBitmap);<BR>&nbsp;&nbsp;&nbsp;&nbsp;BITMAP bm;<BR>&nbsp;&nbsp;&nbsp;&nbsp;pbmp-&gt;GetObject(sizeof(BITMAP), (LPVOID)&amp;bm));<BR>&nbsp;&nbsp;&nbsp;&nbsp;CDC dcMem;<BR>&nbsp;&nbsp;&nbsp;&nbsp;dcMem.CreateCompatibleDC(NULL);<BR>&nbsp;&nbsp;&nbsp;&nbsp;CBitmap* pOldBitmap = dcMem.SelectObject(pbmp);<BR><BR>&nbsp;&nbsp;&nbsp;&nbsp;//放在对话框中间<BR>&nbsp;&nbsp;&nbsp;&nbsp;x= (Rect.Width()-bm.bmWidth)/2;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//位图左上角横坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;y= (Rect.Height()-bm.bmHeight)/2;&nbsp;&nbsp;&nbsp;&nbsp;//位图左上角纵坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;pDC-&gt;BitBlt(x,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//目标位图横坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;x,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//目标位图纵坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bm.bmWidth,&nbsp;&nbsp;&nbsp;&nbsp;//要转换的块高度 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;bm.bmHeight,&nbsp;&nbsp;&nbsp;&nbsp;//要转换的块宽度 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&amp;dcMem,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//图形数据的源设备对象 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//源位图横坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;0,&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;//源位图纵坐标 <BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;SRCCOPY);&nbsp;&nbsp;&nbsp;&nbsp;//转换类型代码,SRCCOPY表示数据不经修改直接拷贝 <BR>//或铺满对话框<BR>//pDC-&gt;StretchBlt(0,0,Rect.Width(),Rect.Height(),&amp;MemDC,0,0,bm.bmWidth,bm.bmHeight,SRCCOPY);<BR>&nbsp;&nbsp;&nbsp;&nbsp;cMem.SelectObject(pOldBitmap); <BR><BR>//return CDialog::OnEraseBkgnd(pDC); //去掉缺省调用
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:黄豆豆 回复日期:2003-03-21 22:08:05
<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 + -