登录
首页 » VC++源码 » VC++ 三种方法创建不同类型的画刷

VC++ 三种方法创建不同类型的画刷

于 2023-04-20 发布 文件大小:25.55 kB
0 59
下载积分: 2 下载次数: 1

代码说明:

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

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

发表评论

0 个回复

  • VC++ 设置位置断点跟踪程序
    VC++ 设置位置断点跟踪程序,利用随机产生的数组来测试断点跟踪的效果,具体的实现代码:   srand( (unsigned)time( NULL ) );//产生随机种子   int array[number];   CString str1,str2;   str1="原始顺序:";   for(int i=0;i  {    array[i]=rand();//设置条件断点    str2.Format("%d ",array[i]);    str1+=str2;   }   pDC->TextOut(20,10,str1);//输出原始数组顺序   BubbleSort(array, 1, number);   str1="排序顺序:";   for( i=0;i  {    str2.Format("%d ",array[i]);    str1+=str2;   }   pDC->TextOut(20,30,str1);//输出排序后的数组顺序
    2022-03-21 21:04:24下载
    积分:1
  • vc四国军棋服务端+客户端+
    很多人喜欢下四国军棋,不知道其中原理,本代码可以实现四国军棋功能,提供思路,拓展思维。
    2023-01-18 23:55:03下载
    积分:1
  • VC++ 6.0创建带有文本指示的自定义进度条
    VC++ 6.0创建带有文本指示的自定义进度条,自己创建的带有文本的进度条:,   GetClientRect(&rectClient);//获取进度条窗口   CBrush brush;   brush.CreateSolidBrush(::GetSysColor(COLOR_3DFACE));//获取系统画刷   dc.FillRect(&rectClient, &brush);//填充进度条窗口   VERIFY(brush.DeleteObject());//删除画刷   if (m_nCurrentPosition m_nUpper)//进度条没有运行   {    return;   }   brush.CreateSolidBrush(RGB(0, 0,255));//创建蓝色画刷   RECT rectFill;//定义填充区域   float fillwidh=(float)((float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower))*rectClient.right;   ::SetRect(&rectFill,    0,// 左上X坐标    0,//左上Y坐标    (int)fillwidh,//右下X坐标    rectClient.bottom+1);//右下Y坐标   dc.FillRect(&rectFill,&brush);//填充进度条区域   VERIFY(brush.DeleteObject());   CString percent;   percent.Format("已完成:%.0f%%", 100.0*(float)(m_nCurrentPosition-m_nLower)/(float)(m_nUpper-m_nLower));   dc.SetTextColor(RGB(255,0,0));//设置文本颜色   dc.SetBkMode(TRANSPARENT);//透明背景   dc.DrawText(percent, &rectClient, DT_VCENTER|DT_CENTER|DT_SINGLELINE);//显示文本信息
    2023-06-16 21:25:02下载
    积分:1
  • VC++ 6.0 GetTickCount() 高精度计时功能的实现实例
    本源码演示在VC++ 6.0环境下实现高精度计时功能,可在此基础上修改完善成一个毫秒级计时器。运行编译文件后,单击窗口中的按钮,即可激活计时功能,在弹出的窗口中显示计时时间,以毫秒计,请参见截图。计时部分的具体实现代码请参考以下代码:   void CDemoDlg::OnTest()   {    //开始时间    DWORD dwStart = GetTickCount();    for (int i = 0; i < 10000; i++)    {    for (int j = 0; j < 10000; j++)    {    }    }    //结束时间    DWORD dwStop = GetTickCount();    //时间间隔    DWORD dwElapse = dwStop - dwStart;    CString strText = _T("");    strText.Format(_T("时间间隔:%d毫秒"), dwElapse);    AfxMessageBox(strText);   }
    2022-07-22 05:40:03下载
    积分:1
  • VC++ 6.0制作的弹出式菜单
    VC++ 6.0制作的弹出式菜单,代码作者:一剑,这里主要是定义了CMainFrame::OnContextMenu函数来实现弹出式菜单,请参见以下核心代码:   void CMainFrame::OnContextMenu(CWnd* pWnd, CPoint point)   {    CMenu menu;    CMenu *popup;    //IDR_POP_MENU是菜单资源的ID号,是刚添加的菜单    menu.LoadMenu(IDR_POP_MENU);    ASSERT(menu);    //此函数用于得到子菜单的指针。    //由于需要的是“可弹出项”的第一层子菜单,因此用GetSubMenu(0)来得到。    popup=menu.GetSubMenu(0);    popup->TrackPopupMenu(TPM_LEFTALIGN|TPM_RIGHTBUTTON,point.x, point.y,this);      }   然后需要定义几个菜单命令响应函数,请参见源代码文件。
    2022-03-30 01:28:38下载
    积分:1
  • C++课程设计大作业_学生管理系统(含+实验报告)
    这个C++作业主要是编写一个学生成绩管理系统,资料中包括了实验文档报告和项目源代码,项目代码并不多,对学习有帮助。   1.设计目的:用计算机完成对学生成绩的管理。包括对计算机所储存信息的查询、修改、删除、统计等。利用简单容易操作的菜单界面,方便学校、教师等利用计算机的高效、智能化以及存储的便捷性对学生成绩进行管理,可以节省人力时间,安全便捷。   2.总体设计:学生成绩管理系统提供三大模块,即学生成绩信息维护,学生成绩信息查询,学生成绩统计。其中信息维护包括对学生信息的修改,删除和增加,信息查询实现通过学生学号或姓名查询成绩的功能。学生成绩统计则对不同科目不同分数段的学生进行统计,方便用户对学生成绩获得总体的了解和把握。   3.详细设计:首先为用户提供方便的菜单,利用数据输入输出流和规范化输出等实现。再由控制结构实现用户选择与系统功能的对应。利用文件输入输出使C++程序与其数据的存储所在得txt文件联系起来,并进行读写操作。利用2个string类型的数组存储学生姓名和学号,再利用3个int类型数组用来存储学生的三科成绩。   函数实现系统的功能。首先,通过一个getRow函数获得系统中目前存储的学生人数。再通过一个getID函数,将txt文件中的学生信息录入到之前声明的五个数组中。然后即可对学生数据进行操作。searchGrade可实现用户对学生成绩的查询,changeGrade可帮助用户修改学生的各项信息,addGrade可以向计算机存储中增加新的学生信息,countGrade可统计不同科目不同分数段的学生分布情况。另外,enterChoice函数用来帮助信息维护的用户对不同的维护选项进行选择,而saveResult则在用户对数据进行维护后进行文件的保存,完成C++程序与txt文件的数据交流。main函数主要进行控制结构的安排和变量的声明。   在全部功能实现并正常编译后,对程序进行了新的修改。在countGrade中提供了更多学生信息,完善了错误反馈机制。并对菜单进行了美化调整。对几个函数的位置作了调整。   经调试,程序能够快速准确的执行设计目的中的各项要求和期望,达到设计初衷。   所有这些资料,你都可以通过压缩包中的课程设计报告.doc文档来了解。
    2022-02-09 18:24:25下载
    积分:1
  • 收集3个与进程相关的VC++
    收集3个与进程相关的VC++源代码,主要是进程的创建、进程控制、控制其他进程这三个源码,每一个在VC6.0环境下都可以顺利编译,这些例子都不复杂,因此是初学者学习VC++很不错的范例。
    2022-04-26 15:50:40下载
    积分:1
  • VC++ CREATE VIEW语句动态创建数据库视图
    VC++ 动态创建视图,使用CREATE VIEW语句动态创建数据库视图,具体请下载本源码测试,需要提前准备好数据库。需要导入一个ADO动态链接库msado15.dll,该动态库位于系统盘下的“Program FilesCommon FilesSystemado”目录下。数据库连接好才可以使用本程序动态创建视图。
    2022-08-03 17:42:23下载
    积分:1
  • vc++ 6.0 AddNew添加数据库记录实例
    VC++ 数据库基础编程例子,使用记录集对象的AddNew方法添加记录。   //连接数据库   OnInitADOConn();   //设置查询字符串   _bstr_t bstrSQL = "select * from employees order by 员工编号 desc";   //创建记录集指针对象实例   m_pRecordset.CreateInstance(__uuidof(Recordset));   //打开记录集   m_pRecordset->Open(bstrSQL,m_pConnection.GetInterfacePtr(),adOpenDynamic,    adLockOptimistic,adCmdText);   while(!m_pRecordset->adoEOF)   {    m_Grid.InsertItem(0,"");    m_Grid.SetItemText(0,0,(char*)(_bstr_t)m_pRecordset->GetCollect("员工编号"));    m_Grid.SetItemText(0,1,(char*)(_bstr_t)m_pRecordset->GetCollect("员工姓名"));    m_Grid.SetItemText(0,2,(char*)(_bstr_t)m_pRecordset->GetCollect("所属部门"));    m_Grid.SetItemText(0,3,(char*)(_bstr_t)m_pRecordset->GetCollect("基本工资"));    //将记录集指针移动到下一条记录    m_pRecordset->MoveNext();   }   //断开数据库连接   ExitConnect();
    2022-03-10 00:07:57下载
    积分:1
  • VC++ 6.0 演示如何获取打印份数
    VC++ 6.0 演示如何获取打印份数,这个功能在平时的打印操作中,几乎每次都要设置一下,要不然打印机按打印一份处理,本程序可设置打印份数,将参数传递给打印机,一次可打印多份文档,代码超简单,有兴趣下载源码学习。
    2022-03-24 22:43:51下载
    积分:1
  • 696518资源总数
  • 104292会员总数
  • 28今日下载