我无法使用"LoadImage"加载图片并在对话框中绘制它
i can't load picture with "LoadImage" and draw it in dialog
void CCreateList::paintRowList(CDialogEx* CCurent, int wBeginX, int wBeginY)
{
CPaintDC dc(CCurent);
CDC *cdc,cc;
cdc=CCurent->GetDC();
HANDLE hbitmap;
hbitmap = LoadImage(0,L"C:\PIC.png",IMAGE_BITMAP,100,100,0x00000010);
cc.CreateCompatibleDC(cdc);
cc.SelectObject(hbitmap);
dc.BitBlt(100,100,100,100,&cc,0,0,SRCCOPY);
}
我想在对话框中绘制带有图像的标题。不要使用优化校准,请帮助我。
这是我用于加载其他图像格式的代码。它依赖于GDI+,所以你需要在使用之前和之后初始化和关闭(每个程序一次就足够了)
加载例程:
// BMP, GIF, JPEG, PNG, TIFF, Exif, WMF, and EMF
HBITMAP mLoadImg(WCHAR *szFilename)
{
HBITMAP result=NULL;
Gdiplus::Bitmap* bitmap = new Gdiplus::Bitmap(szFilename,false);
bitmap->GetHBITMAP(NULL, &result);
delete bitmap;
return result;
}
初始化/关闭
int APIENTRY WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nShowCmd)
{
static Gdiplus::GdiplusStartupInput gdiplusStartupInput;
static ULONG_PTR gdiplusToken;
// so we can load all the image formats that windows supports natively - (I'm using a transparent PNG on the main dialog)
GdiplusStartup(&gdiplusToken, &gdiplusStartupInput, NULL);
// make things look pretty
InitCommonControls();
// run the app
//DialogBox(hInstance, MAKEINTRESOURCE(DLG_MAIN), NULL, (DLGPROC)DialogProc);
//
//
//
// clean-up stuff
Gdiplus::GdiplusShutdown(gdiplusToken);
return 0;
}
当然,这是针对基于对话框的应用程序(对话框在 resource.rc 中定义) - 而不是基于框架的应用程序或 MFC 应用程序。关键是,您只需要在使用前初始化,然后关闭。
我用:
CString strFileName;
strFileName="C:\PIC.bmp";
BITMAP bmpPro;
HBITMAP bmpHandle=(HBITMAP)LoadImage(NULL,strFileName,IMAGE_BITMAP,0,0, LR_LOADFROMFILE| LR_CREATEDIBSECTION);
CBitmap bmpPicture;
CDC mdcPicture;
bmpPicture.Attach(bmpHandle);
bmpPicture.GetBitmap(&bmpPro);
mdcPicture.CreateCompatibleDC( &dc);
CBitmap * bmpPrevious =
mdcPicture.SelectObject(&bmpPicture);
dc.BitBlt(wCurrent, wBeginY,
header[i].getWidthOfHeader(), wHeight,
&mdcPicture, 0, 0, SRCCOPY);
我成功了:X谢谢:X
相关文章:
- 如何在Qbutton的帮助下更改Q对话框的宽度
- 当对话框被接受时,如何用参数调用槽
- WinAPI 在单击第一个对话框上的按钮控件并销毁第一个对话框后创建第二个对话框
- 如何多次询问来自QML对话框的输入?
- 选择文件对话框错误
- 自定义对话框(源自QDialog)不会关闭(Android)
- 如何在 MFC 对话框中使用 OnDraw
- 在C++中创建文件夹选取器对话框的最简单方法是什么?
- 从资源视图访问对话框时出现问题
- 如何检测窗口当前是否正在运行模式对话框?
- "最小化"按钮不会出现在 MFC 对话框中
- 对话框窗体快速闪烁,但之后未正确绘制
- 如何在MFC对话框上绘制/创建GDI
- 我无法使用"LoadImage"加载图片并在对话框中绘制它
- 为什么 CDC::LineTo() 无法在 Visual C++ 2015 MFC 对话框中绘制?
- 在windows对话框中使用FONT和SetBkMode绘制文本
- Q对话框未在循环中绘制
- 如何在MFC对话框的静态区域中绘制图像
- 如何绘制从glReadPixels捕获的屏幕截图到wxWidgets对话框/面板
- 直接在对话框中绘制位图