过路的大虾:
我想在客户区想添加一张图片。
我在视图的onDraw()中代码如下:
void CSDlutilView::OnDraw(CDC* pDC)
{
CBitmap Logo;
CDC dcDisplayMemory;
Logo.LoadBitmap(IDB_LOGO);
dcDisplayMemory.CreateCompatibleDC(pDC);
dcDisplayMemory.SelectObject(&Logo);
pDC->BitBlt(0, 0, 1200, 600, &dcDisplayMemory, 0, 0,SRCCOPY);
}
如果我的IDB_LOGO是一个在Resource下的Bitmap中通过Insert New bitmap方法生成时,程序是能显示一个爆丑的图片的,但是如果IDB_LOGO是一个现成的图片(例如一张风景照片)就不能正常的Load进去。
为什么?
怎样才能实现呢?
我想在客户区想添加一张图片。
我在视图的onDraw()中代码如下:
void CSDlutilView::OnDraw(CDC* pDC)
{
CBitmap Logo;
CDC dcDisplayMemory;
Logo.LoadBitmap(IDB_LOGO);
dcDisplayMemory.CreateCompatibleDC(pDC);
dcDisplayMemory.SelectObject(&Logo);
pDC->BitBlt(0, 0, 1200, 600, &dcDisplayMemory, 0, 0,SRCCOPY);
}
如果我的IDB_LOGO是一个在Resource下的Bitmap中通过Insert New bitmap方法生成时,程序是能显示一个爆丑的图片的,但是如果IDB_LOGO是一个现成的图片(例如一张风景照片)就不能正常的Load进去。
为什么?
怎样才能实现呢?
解决方案 »
- ocx控件在IE6下关闭有崩溃
- 各位高手,请问对话框完全显示之后会调用什么函数?
- 在VC中的对话框中怎么得到实际的高度...
- 现在VC最新有是哪个版本?
- 大家帮忙看看
- ●●●●我用TAPI2.2编程,接听来电的问题!有兴趣的朋友一起讨论一下吧!●●●●
- 请问如何王游戏端口(game port)里写数据
- 如何将.BMP文件包含进联编后的exe中去?
- 这个问题很棘手,有人问过,没人回答,关于CEdit
- ~~~~~~~~~问个超简单的问题~~~~~~~~
- 求助如何在视图窗口中实现treeview功能,详情请进!
- 用DrawEdge画的边框怎么取消之,就象DrawFocusEdge一样第二次调用就取消边框
怎么看资源中的颜色设成了多少?这是什么意思啊?
谢谢啊.
更正:vc 创建资源文件里面的都是256色
但你可以导入一个真彩位图。
首先导入位图文件的方法需要注意:
Insert》resorc>>import...>>选择所有文件,然后选择你要的24色bmp
不过引入后会有提示,说不能用编辑器编辑。因为vc的编辑器是256色的
我们就直接用这个图给ID起名字”IDB_BITMAP_24“不对位图进行编辑了。CBitmap* bmp=new CBitmap(); HBITMAP hbm = (HBITMAP)::LoadImage(AfxGetInstanceHandle(),
MAKEINTRESOURCE(IDB_BITMAP_24), IMAGE_BITMAP, 0,0,
LR_CREATEDIBSECTION | LR_LOADMAP3DCOLORS );
bmp->Attach(hbm);
CDC MemDC;
CString str("c:\\abc.bmp");
HBITMAP hBitmap=(HBITMAP)LoadImage(NULL,str, IMAGE_BITMAP, 0, 0, LR_LOADFROMFILE|LR_CREATEDIBSECTION);
CBitmap *pBitmap = new CBitmap; pBitmap->Attach(hBitmap); MemDC.CreateCompatibleDC(pDC); MemDC.SelectObject(pBitmap);
pDC->BitBlt(0, 0,800, 800, &MemDC, 0, 0, SRCCOPY);
pBitmap->Detach();
delete pBitmap;