注册 登录
编程论坛 VC++/MFC

Vc窗口下加载位图,为毛只有窗口没得图片呢???

好聚好散 发布于 2013-07-16 11:44, 601 次点击
// ckWnd.cpp : implementation file
//

//#include "stdafx.h"
#include "ck.h"
#include "ckWnd.h"

#ifdef _DEBUG
#define new DEBUG_NEW
#undef THIS_FILE
static char THIS_FILE[] = __FILE__;
#endif

/////////////////////////////////////////////////////////////////////////////
// ckWnd

IMPLEMENT_DYNCREATE(ckWnd, CFrameWnd)
int i ;
ckWnd::ckWnd()
{
    Create(NULL, "窗口");
    bitmap = new CBitmap;
    bitmap->m_hObject= LoadImage(NULL, "1.1.bmp", IMAGE_BITMAP, 600, 450, LR_LOADFROMFILE);
    mdc = new CDC;
    CClientDC dc(this);
    mdc->CreateCompatibleDC(&dc);
    mdc->SelectObject(bitmap);
    i = 0;

}

ckWnd::~ckWnd()
{
}


BEGIN_MESSAGE_MAP(ckWnd, CFrameWnd)
    //{{AFX_MSG_MAP(ckWnd)
    ON_WM_PAINT()
    //}}AFX_MSG_MAP
END_MESSAGE_MAP()

/////////////////////////////////////////////////////////////////////////////
// ckWnd message handlers

void ckWnd::OnPaint()
{
    CPaintDC dc(this); // device context for painting
   
    // TODO: Add your message handler code here
    if (i++<300)
    {
        dc.BitBlt(0+i,0,600,450,mdc,0,0,SRCCOPY);
    }
    else
        i = 0;
    // Do not call CFrameWnd::OnPaint() for painting messages

}
6 回复
#2
yuccn2013-07-16 12:01
ckWnd::ckWnd()构造函数内部,创建兼容dc估计还不行把,创建兼容dc 最好挪到窗口的初始化里面去,构造函数里面,窗口都还没有生成的
#3
好聚好散2013-07-16 12:12
有窗口,但是没有图片,,版主qq多少,我们q聊下好嘛
#4
好聚好散2013-07-16 15:27
可以加载了,刚才我发现图片格式不对
#5
yuccn2013-07-16 15:51
回复 4楼 好聚好散
应该有错误码什么的,调试跟踪下
你是在mfc中使用的吗?一般都是在OnInitDlg里面来创建兼容dc
#6
好聚好散2013-07-17 00:48
代码没错,是我把图片放工程的时候格式搞错了
#7
zyftank2013-07-20 10:22
VC,我只能加载BMP格式图片呢
1