我想用mfc 在窗口中显示图片,为何我写的代码不行啊
BOOLGameApp::InitInstance(){m_pMainWnd=newGameWnd;m_pMainWnd->ShowWindow(m_nCmdShow);...
BOOL GameApp::InitInstance()
{
m_pMainWnd=new GameWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
GameApp是CWinapp类。GameWnd是cframewnd类。我在GameWnd构造函数中初始化窗口信息。如下:
GameWnd::GameWnd()
{
Create(NULL,"创建窗口");
bitmap=new CBitmap;
bitmap->m_hObject=LoadImage(NULL,"1.1.bmp",IMAGE_BITMAP,93,100,LR_LOADFROMFILE);
mdc=new CDC;
mdd = new CClientDC(this);
mdc->CreateCompatibleDC(mdd);
mdc->SelectObject(bitmap);
mdd->BitBlt(0,0,93,100,mdc,0,0,SRCCOPY);
}
但是为何运行后,只有弹窗,没有图片啊!!!!(我图片就放在工程文件夹中,路径是对的),我都是用动态内存,不应该被销毁啊 展开
{
m_pMainWnd=new GameWnd;
m_pMainWnd->ShowWindow(m_nCmdShow);
return TRUE;
}
GameApp是CWinapp类。GameWnd是cframewnd类。我在GameWnd构造函数中初始化窗口信息。如下:
GameWnd::GameWnd()
{
Create(NULL,"创建窗口");
bitmap=new CBitmap;
bitmap->m_hObject=LoadImage(NULL,"1.1.bmp",IMAGE_BITMAP,93,100,LR_LOADFROMFILE);
mdc=new CDC;
mdd = new CClientDC(this);
mdc->CreateCompatibleDC(mdd);
mdc->SelectObject(bitmap);
mdd->BitBlt(0,0,93,100,mdc,0,0,SRCCOPY);
}
但是为何运行后,只有弹窗,没有图片啊!!!!(我图片就放在工程文件夹中,路径是对的),我都是用动态内存,不应该被销毁啊 展开
2个回答
展开全部
你没有在WM_PAINT里描绘图片啊,所以没有图片显示呀,有关窗口控件描绘的,请到我的博客去看看吧:
http://blog.csdn.net/renstarone/article/details/9230763
http://blog.csdn.net/renstarone/article/details/9230763
更多追问追答
追问
WM_PAINT是重绘吧?难道图片的显示一定要重绘才行???我就在构造函数里面载入图片,然后showwindow为何不行???
追答
额,你肯定是新手,Windows窗口是按消息来运作的,不是随便定义的。WM_PAINT和WM_ERASEBKGND这些消息是用来重绘窗口的。根据Windows编程规则来。。。。
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询