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

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

于 2023-04-20 发布 文件大小:25.55 kB
0 169
下载积分: 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++ 6.0FreeBird软件 仿飞鸽传书,可聊天+传输文件
    VC++ 6.0自写的FreeBird仿飞鸽传书,可聊天+传输文件程序源码,我耗费一个月上百度、参考网上代码,和不断调试出来的一个网络文件传输小软件。可进行局域网的聊天、一对多、多对一、和多对多的传送和续传,理论上这是我本人的实现目的,而且目前经测试已基本实现了上述功能,而且网速一般有几M/S。另外有只打开一个应用程序、CRichEdit的使用、最小到托盘、自动检测在线用户(多播组)等。   做这个小软件的目的不是为了给别人使用,而是想通过开发这么一个小小和软件,体会软件设计的过程和了解网络通信是个大概什么样的东西(这也是我摸索了好久,现在才彻底明白原来Socket通信是这么一回事的)。总而言之:目的是为了学习。
    2023-08-31 14:20:03下载
    积分:1
  • VC++ 6.0 改变视图窗口的背景色
    VC++ 改变视图窗口的背景色,在窗口的显示区自定义颜色,有兴趣可参考以下代码:   void CFaceControl1View::OnChageviewbk() //改变背景色   {    m_rgbBack=RGB(0,128,128);    Invalidate(true);   }   BOOL CFaceControl1View::OnEraseBkgnd(CDC* pDC)   {    CBrush Brush (m_rgbBack);// 创建一个新的刷子    CBrush* pOldBrush = pDC->SelectObject (&Brush);// 把刷子选入设备环境    //获得需要檫除背景的区域    CRect reClip;    GetClientRect(&reClip);    //重绘该区域    pDC->PatBlt(reClip.left , reClip.top , reClip.Width () , reClip.Height() , PATCOPY);    //释放刷子    pDC->SelectObject (pOldBrush);    return TRUE;//必须返回TURE   }
    2022-08-04 05:28:13下载
    积分:1
  • VC++ 创建一个非模态对话框
    VC++ 创建一个非模态对话框,比较一下模态对话框,与其有何异同。以下是创建对话框的代码:   void CNonModeDlgDlg::Finish()   {    m_pChoice = NULL;    GetDlgItem(IDOK)->EnableWindow();   }   void CNonModeDlgDlg::OnOK()   {    if ( m_pChoice == NULL )    {    m_pChoice = new CChoiceDlg(this);    if ( m_pChoice->Create() == TRUE )    {    GetDlgItem(IDOK)->EnableWindow(FALSE);    }    }    else    {    m_pChoice->SetActiveWindow();    }   }
    2022-02-10 13:08:52下载
    积分:1
  • 一个老式的视频播放器程序 VC++编写
    VC++编写 实现的一款老式的视频播放器,视频:用Media Player组件制作的视频播放器,看上去,是调用了Windows系统自带的MediaPlayer插件而实现的,具体windows mediaPlayer播放器的功能,使用这个插件,不管是VC或是VB、Delphi,都可以快速实现这个播放器功能,不过播放器播放的格式同样受限于windows mediaPlayer播放器。
    2023-06-27 02:50:03下载
    积分:1
  • VC++ 设置打印图形的位置
    VC++ 6.0 设置打印图形的位置,实现所见即所得的打印功能。   if(pDC->IsPrinting())//判断是否因打印或打印预览而调用OnPrepareDC()函数   {    pDC->SetViewportOrg(250,400);//设置视口坐标原点   }   //以下为显示和打印的内容   pDC->TextOut(10,10,"实现所见即所得的打印");   pDC->SetBkMode(TRANSPARENT);   pDC->Rectangle(10,40,310,350);   pDC->Ellipse(50,50,210,220);   pDC->Ellipse(70,240,280,320)   //设置映射模式   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*600/xLogPixPerInch; //按照打印机扩大视口   yExt=winSize.cy*600/yLogPixPerInch;   pDC->SetViewportExt(xExt,yExt); //设定视口大小
    2022-01-27 16:52:24下载
    积分:1
  • VC++ 删除已存在的存储过程
    VC++ 演示在程序中删除已存在的存储过程,VC6存储过程相关操作实例,删除方法很简单,创建对象,如下代码示:   UpdateData(true);   BOOL result;   ADOConn m_AdoConn;   m_AdoConn.OnInitADOConn();   _bstr_t sql;   sql = "drop procedure "+m_edit+" ";   result = m_AdoConn.ExecuteSQL(sql);   m_AdoConn.ExitConnect();   if(result)    MessageBox("存储过程已删除!");   else    MessageBox("存储过程不存在!");
    2022-12-24 15:50:03下载
    积分:1
  • 向新手演示VC++中的ListView用法 附
    向新手演示VC++中的ListView用法 附源码,这个虽然简单,不过对于刚接触VC++编程的新手来说,可以很好的熟悉ListView组件在VC++中的应用方法,本程序编写好后,运行编译后的程序,界面效果如图所示。
    2022-06-28 09:08:10下载
    积分:1
  • VC 钱箱控制程序示例
    VC++6.0 钱箱控制程序示例,程序以一个超市销售终端为例子,演示钱箱控制的基本操作、程序实现等。程序中将使用到m_List、CButton、SetPortOpen、SetCommPort等来实现钱箱控制。在编写类似的销售软件时,这个程序可借鉴。
    2022-06-21 11:22:49下载
    积分: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
  • VC++ gethostbyname获取主机名和IP地址
    VC++ 获取主机名和IP地址,也就是根据主机名获得IP地址,使用了gethostbyname函数,然后再使用addr.Format格式化获取到IP地址。具体来看以下代码获取到IP地址:   // 获得主机ip地址   struct hostent * phost;   phost = gethostbyname(szhostname);//根据主机名获得IP地址    m_strName=szhostname;   int h_length=4;   for( int j = 0; j  {    CString addr;    if( j > 0 )    str += ".";    addr.Format("%u", (unsigned int)((unsigned char*)phost->h_addr_list[0])[j]);    str += addr;   }   m_strIP=str;
    2022-11-09 11:50:03下载
    积分:1
  • 696516资源总数
  • 106914会员总数
  • 0今日下载