C语言控制台程序中添加背景图片
(1)
C语言写控制台程序是无法加图片的,只能用命令行输出,最多就是设置下背景和字体,颜色之类的。如果开发API窗口程序,完全依赖于操作系统的函数库。C语言本身并不提供这类函数。
下面是windows系统下实现的函数代码,第一个参数是图片的存放的位置,第二个参数是窗口句柄。
HRESULT ShowPic(char *lpstrFile,HWND hWnd)
{HDC hDC_Temp=GetDC(hWnd);IPicture *pPic;IStream *pStm;BOOL bResult;HANDLE hFile=NULL;DWORD dwFileSize,dwByteRead;
//打开图形文件hFile=CreateFile(lpstrFile,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,FILE_ATTRIBUTE_NORMAL,NULL);if (hFile!=INVALID_HANDLE_VALUE){dwFileSize=GetFileSize(hFile,NULL);//获取文件字节数 if (dwFileSize==0xFFFFFFFF)return E_FAIL;}else{return E_FAIL;}
//分配全局存储空间 HGLOBAL hGlobal = GlobalAlloc(GMEM_MOVEABLE, dwFileSize);LPVOID pvData = NULL;if (hGlobal == NULL)return E_FAIL;if ((pvData = GlobalLock(hGlobal)) == NULL)//锁定分配内存块 return E_FAIL;ReadFile(hFile,pvData,dwFileSize,&dwByteRead,NULL);//把文件读入内存缓冲区GlobalUnlock(hGlobal);CreateStreamOnHGlobal(hGlobal, TRUE, &pStm);
//装入图形文件bResult=OleLoadPicture(pStm,dwFileSize,TRUE,IID_IPicture,(LPVOID*)&pPic);if(FAILED(bResult))return E_FAIL;OLE_XSIZE_HIMETRIC hmWidth; //图片的真实宽度, 单位为英寸 OLE_YSIZE_HIMETRIC hmHeight; //图片的真实高度, 单位为英寸pPic->get_Width(&hmWidth);pPic->get_Height(&hmHeight);
//转换hmWidth和hmHeight为pixels距离,1英寸=25.4毫米int nWidth = MulDiv(hmWidth,GetDeviceCaps(hDC_Temp,LOGPIXELSX),2540);int nHeight = MulDiv(hmHeight,GetDeviceCaps(hDC_Temp,LOGPIXELSY),2540);
//将图形输出到屏幕上(有点像BitBlt)bResult=pPic->Render(hDC_Temp,0,0,nWidth,nHeight,0,hmHeight,hmWidth,-hmHeight,NULL);hmHeight,NULL);pPic->Release();CloseHandle(hFile);//关闭打开的文件if (SUCCEEDED(bResult)){return S_OK;}else{return E_FAIL;}
}
(2)不一样的控制台程序-----在控制台中输出图片
https://blog.csdn.net/haiross/article/details/38846633
C语言控制台程序中添加背景图片相关推荐
- Vue中添加背景图片
往一个div中添加背景图片 bgImg:为图片地址 希望能帮到你!!
- 简历背景图片设置html代码,怎么在简历中添加背景图片
在简历中添加背景图片的方法二 步骤1.在菜单栏选择图片->自来文件->选择图片后->确定; 步骤2.选图片->右键-->设置图片格式->版式->衬于文字下方; ...
- Qt中添加背景图片的方法
Qt中添加背景图片的方法 QPalette的方法 #include #include int main(int argc, char *argv[]) { QApplication app(argc, ...
- 怎样在android中添加背景图片?
怎样在android中添加背景图片? 1.打开左侧的工程文件夹.打开res中的layout,双击main.xml. 2.一般的图片是jpg格式的,要把格式转化为png格式的. 3.把PNG格式的图片拖 ...
- java swing背景_java Swing中添加背景图片(总结)
在java GUI图形化设计中,Swing组件添加背景图片主要有两中情况:1,在Jpanl面板中添加背景图片,2,在jLable中添加背景图片 首先介绍一种最巧妙的背景图片添加方法, 1.利用JLab ...
- 如何使用PDF编辑软件在PDF文件中添加背景图片
我们在做Word文档时有时候为了美观会给文档添加一个背景图片,当然了我们做PDF文档时给PDF文档添加一个背景图片也是必不可少的,但是我们应该怎么去给PDF文档添加背景图片呢?今天小编就把自己搜集的信 ...
- html表格中添加背景图片不平铺,如何在让Excel表格背景不平铺?
如何在让Excel表格背景不平铺? 时间:2016-06-09来源: 网络作者: 未知点击: 次 Excel技巧:如何在让Excel表格背景不平铺? 接上期<如何在Excel表格中插入背景图片& ...
- qt中添加背景图片(stylesheet)
项目建立完成后: 右键点你的项目 "Add New"->"QT Resource file" 生成一个qrc文件 然后双击它 点add 然后Add Pr ...
- linux qt 背景图片,《转》qt中添加背景图片(stylesheet)
摘要: QT Create中,对button或者window等部件设置背景.颜色.透明等样式时,需要用到stylesheet,可以直接在代码里写,也可以在ui设计师里通过右键change styles ...
最新文章
- Sql语法---DDL
- 关于ProGuard的学习了解(从别处转来)
- npm 安装指定的第三方包
- 虹康三期倒垃圾时间和理发地点
- SAP Fiori 页面的周期性动态刷新功能的实现步骤
- fork创建多个子进程
- JVM性能优化之堆区域OOM问题
- 关于Android中的SlidingMenu中的用法
- python环境变量配置_怎么搭建python环境?很简单,就几步的事
- long 雪花算法_雪花算法(SnowFlake)Java版
- 使用 Capistrano 和写作 Ruby 迭代边缘部署
- Flutter进阶第1篇: http get请求数据、post提交数据、以及渲染动态数据
- [转]ASP.NET MVC中你必须知道的13个扩展点
- XCODE中,修改苹果APP支持哪些设备
- win10 ISO文件下载
- 【CSDN|每日一练】小艺的英文名
- 如何使用networkx导入txt文件数据并绘制
- Okhttp简单介绍
- uni-app个人中心页开发
- 脉冲神经网络(Spiking Neural Network,SNN)概述