登录
首页 » VC++源码 » VC++ 创建DIB操作类——CDib的源程序代码

VC++ 创建DIB操作类——CDib的源程序代码

于 2022-03-09 发布 文件大小:5.20 kB
0 218
下载积分: 2 下载次数: 1

代码说明:

VC++ 创建DIB操作类——CDib的源程序代码,这个类中创建了几个函数:1、用来绘制DIB对象的函数,2、按照DIB创建一个逻辑调色板的函数,3、计算DIB像素的起始位置,并返回指针的函数,4、返回DIB中图象的高度的函数,5、返回DIB中调色板的大小的函数,6、返回DIB中调色板颜色种数的函数等。   用于操作DIB的函数声明如下:   BOOL DrawDib(HDC, LPRECT,HGLOBAL, LPRECT,CPalette*);//显示位图   BOOL ConstructPalette(HGLOBAL,CPalette* );//构造逻辑调色板   LPSTR GetBits(LPSTR); //取得位图数据的入口地址   DWORD GetWidth(LPSTR);//取得位图的宽度   DWORD GetHeight(LPSTR);//取得位图的高度   WORD GetPalSize(LPSTR); //取得调色板的大小   WORD GetColorNum(LPSTR);//取得位图包含的颜色数目   WORD GetBitCount(LPSTR);//取得位图的颜色深度   HGLOBAL CopyObject(HGLOBAL);//用于复制位图对象   BOOL SaveFile(HGLOBAL , CFile&);//存储位图为文件   HGLOBAL LoadFile(CFile&);//从文件中加载位图   // 在对图象进行处理时,针对位图的字节宽度必须是4的倍数的这一要求,我们设计了函数GetRequireWidth,来处理这种比较特殊的情况:   int GetReqByteWidth(int ); //转换后的字节数GetRequireByteWidth   long GetRectWidth(LPCRECT );//取得区域的宽度   long GetRectHeight(LPCRECT);//取得区域的高度

下载说明:请别用迅雷下载,失败请重下,重下不扣分!

发表评论

0 个回复

  • VC.NET输入框出现气球提示
    VC++.net实现输入框气球提示,本源码最主要演示EDITBALLOONTIP的用法。当用户拖动最小化窗口时系统调用此函数取得光标显示,然后调用预设的提示信息显示给用户,让用户知道此输入框应该输入什么类型的内容,用户体验更好。
    2022-01-26 20:21:11下载
    积分:1
  • VC 扫描仪控制程序
    这是一个在VC++环境下实现的扫描仪扫描管理程序,用于启动扫描和停止扫描,只是实现基本的扫描仪控制,不过本程序的顺利运行需要扫描仪支持,且是指定型号,窗口中对应的功能,由下面的按钮事件来响应:   开始扫描:   void CScanManageDlg::OnButton1()   {    m_Scan.ScannerAvailable();    m_Scan.OpenScanner();    m_Scan.StartScan();   }   停止扫描:   void CScanManageDlg::OnButton2()   {    m_Scan.StopScan();   }
    2022-05-27 18:23:01下载
    积分:1
  • 修改Windows IE的主页:VC++编写的程序
    VC++编写源码实现修改IE浏览器的主页,这个现在已经不是什么新鲜功能了,现在好像有360在干扰用户自定义主页,唉,360好流氓哦,本程序实现的修改IE主页,同样会被360拦截,因此测试前请关掉360哦。   本程序通过修改注册表的方式来修改IE主页,这种方式是惯用的一种方法。
    2022-04-25 09:53:44下载
    积分:1
  • VC++ 多文档程序实现为新建的文档设置显示字体
    VC++ 多文档程序实现为新建的文档设置显示字体,m_str="多文档应用程序实例!";//输出文本   CFontDialog dlg;//字体对话框   dlg.GetCurrentFont(&m_lf);   if(dlg.DoModal()==IDOK)//显示对话框   dlg.GetCurrentFont(&m_lf);//获取用户设置的字体信息   return TRUE;   CString str=pDoc->m_str;//获取输出文本   LOGFONT lf=pDoc->m_lf;//获取字体结构   CFont *pFont=new CFont;   pFont->CreateFontIndirect(&lf);//创建字体   CFont *poldFont=pDC->SelectObject(pFont);//载入DC   pDC->TextOut(40,40,str);//输出文本   pDC->SelectObject(poldFont);//恢复字体
    2022-12-19 01:50:03下载
    积分:1
  • VC++俄罗斯方块 带声音
    VC++俄罗斯方块源码 带声音,操作说明:利用键盘控制方块的移动: ↑ 方块旋转 ↓ 直接落下 ←向左移动 → 向右移动。消除行数已经超过10级,游戏结束。   游戏具体玩法:选中游戏界面的"游戏"|"游戏开始"来开始游戏,每当用方块填充完一行或者多行时,则可以消除当前这一行或者多行的方块,并得到一定积分。当方块堆放的高度超过游戏所规定的最大高度,即游戏界面最上面的边界。则认定游戏结束。开始时将要出现方块没有生成,其不能赋值给当前方块数组。   判碰撞,遇到了边界或者有其他方块档住我觉得这个方法对编写游戏很不错,碰撞检测的例子。
    2022-02-12 00:45:04下载
    积分:1
  • VC++ 使用WinInet通过HTTP协议读取网上文件
    VC++ 6.0 使用WinInet通过HTTP协议读取网上文件   在一个按钮事件中定义了网络连接Session:   CInternetSession httpsession;//定义网络连接Session   CString Line;   CInternetFile* webfile=NULL;//定义一个文件对象指针   UpdateData();   if(m_Url.Left(7)!="http://")//如果地址不含HTTP类型标志则添加本地文件类型标志   读出文件前一部分,如果文件多于80行,三示例中只显示前80行.然后更新显示文件:   UpdateData(FALSE);//更新显示文件   delete webfile;//删除文件   GetDlgItem (IDC_SHOW)->EnableWindow (FALSE);//禁用显示按钮   httpsession.Close();//关闭连接
    2023-09-07 18:35:03下载
    积分:1
  • VC++ 三种方法创建不同类型的画刷
    VC++ 三种方法创建不同类型的画刷,本源码实例 演示了VC++使用三种方法创建画笔,最核心的代码:   void CCreatePenView::OnDraw(CDC* pDC)   {    CCreatePenDoc* pDoc = GetDocument();    ASSERT_VALID(pDoc);    // TODO: add draw code for native data here    // 第一种方法创建画笔    for (int i=0; i < 7; i++)    {    // 定义时调用构造函数    CPen myPen1(PS_SOLID + i,1,RGB(255,0,0));    CPen *pOldPen1 = pDC->SelectObject(&myPen1);    pDC->MoveTo(10,20*i+10);    pDC->LineTo(750,20*i+10);    // 恢复画笔对象    pDC->SelectObject(pOldPen1);    }    // 第二种方法创建画笔    for (int j = 0;j < 7; j++)    {    CPen myPen2; // 创建CPen类的一个对象myPen2    // 调用CreatePen()函数创建画笔    myPen2.CreatePen(PS_SOLID,j,RGB(0,255,255));    CPen *pOldPen2 = pDC->SelectObject(&myPen2);    pDC->MoveTo(10,180+20*j);    pDC->LineTo(750,180+j*20);    // 恢复画笔对象    pDC->SelectObject(pOldPen2);    }    // 第三种方法创建画笔    // 创建CPen类的一个对象myPen3    CPen myPen3;    // 设置LOGPEN结构;    LOGPEN lp ;    lp.lopnColor = RGB(255,0,255);    lp.lopnStyle = PS_SOLID ;    lp.lopnWidth.x = 8 ;    // 调用CreatePen
    2023-04-20 18:00:04下载
    积分:1
  • VC6.0文本操作:测试鼠标光标所在的Region
    VC6.0测试鼠标光标所在的Region,本程序的功能:按下鼠标的左键,测试鼠标光标所在的Rgn,属于文字处理的范畴,使用CreateRectRgn函数初始化一个矩形区域对象,关于几个参数的说明:   0: 表示在矩形区域中,而不在椭圆形区域中   1: 表示既在矩形区域中,又在椭圆形区域中   2: 表示即不在矩形区域中,又不在椭圆形区域中
    2022-08-13 20:26:03下载
    积分:1
  • VC++ 使用互斥对象(Mutex)实现线程同步
    VC++ 使用互斥对象(Mutex)实现线程同步,使用临界区对象实现读、写线程的同步,通过一个写线程和读线程的实例,来演示Mutex实现的线程同步功能。用完后销毁读线程,如下示:   CSingleLock singleLock(&mutex);   singleLock.Lock();   TerminateThread(g_ReadHnd, 0);//终止读线程   singleLock.Unlock();//释放资源   m_ReadEdit.SetWindowText("终止读线程");   GetDlgItem(IDC_STARR)->EnableWindow(true);//启动按钮生效   GetDlgItem(IDC_STOPR)->EnableWindow(false);//停止按钮无效
    2022-04-11 14:27:41下载
    积分:1
  • VC++ MFC绘图打印技术范例
    VC++ 6.0 基于MFC的绘图及打印技术实例,附上了完整源码,打开程序后,可单击“测试”按钮,弹出绘图设置窗口,设置好参数绘图,然后打印出数据。方法步骤:   //创建画笔C++对象   CPen* pPenBlue = new CPen;   //创建画笔   pPenBlue->CreatePen(PS_SOLID,pDoc->m_thick,pDoc->m_color);   //选中当前画笔,并保存以前的画笔   CPen* pOldPen = pDC->SelectObject(pPenBlue);   POSITION posi=pDoc->m_PointList.GetHeadPosition();   while(posi)   {    CPoint point(pDoc->m_PointList.GetNext(posi));    pDC->Ellipse(point.x,point.y,point.x+    pDoc->m_long,point.y+pDoc->m_short);   }   //恢复旧画笔   pDC->SelectObject(pOldPen);   //删除新建的画笔对象   delete pPenBlue;   //设置映射模式   pDC->SetMapMode(MM_ANISOTROPIC);   CSize winSize = CSize(1024, 768);   //设定窗口大小   pDC->SetWindowExt(winSize);   //得到实际设备每逻辑英寸的象素数量   int xLogPixPerInch,yLogPixPerInch;   xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);   yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);   //得到设备坐标和逻辑坐标的比例   int xExt,yExt;   xExt=winSize.cx*xLogPixPerInch/96;   yExt=winSize.cy*yLogPixPerInch/96;   //设定视口大小   pDC->SetViewportExt(xExt,yExt);
    2022-01-25 14:09:09下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载