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

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

于 2023-04-20 发布 文件大小:25.55 kB
0 163
下载积分: 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++ 遍历记录集的例子,需要数据库配合,核心代码如下:   //连接数据库   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-09-02 14:45:03下载
    积分:1
  • VC++ 限定框架窗口的大小和位置
    VC++ 限定框架窗口的大小和位置,无法移动且固定大小的SDI,用VC++编写实现这种固定窗口大小,且无法用鼠标拖动的窗口。窗口是不能改变大小的,窗口标题也不能被拖动,运行程序后,窗口的位置就已经固定,并不能移动和调整大小的操作。相关的代码:   CMenu* pTopMenu = GetSystemMenu(FALSE); //获取系统菜单   pTopMenu -> RemoveMenu(4,MF_BYPOSITION); //去除最大、最小化功能   pTopMenu -> RemoveMenu(2,MF_BYPOSITION); //去除改变尺寸功能   pTopMenu -> RemoveMenu(1,MF_BYPOSITION); //去除移动功能   if( !CFrameWnd::PreCreateWindow(cs) )    return FALSE;   //设置框架窗口的初始大小和位置   cs.cy = ::GetSystemMetrics(SM_CYSCREEN) / 4;    cs.cx = ::GetSystemMetrics(SM_CXSCREEN) / 3;    cs.y = cs.cy / 4;    cs.x = cs.cx / 2;   return TRUE;
    2022-06-14 00:02:23下载
    积分: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
  • 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++ 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++ ChatRoom聊天室(客户端+服务端)
    VC++ 聊天室(客户端+服务端),CS架构的ChatRoom聊天源码,服务端用来创建公共的聊天服务,比如创建用户列表、显示聊天消息、监控用户数量和在线人数;客户端是提供给用户使用的真正聊天程序,可完成大部分的聊天操作,比如发送聊天内容、选择私聊对象、查看聊天黑名单、设置加密传输消息、设置加密密钥、密文、选择发送表情、自定义昵称等功能。聊天窗口通过调主对话框的成员函数GetMessage来显示聊天信息,当用户数增加时,播放欢迎音乐,当用户数减少时播放离开音乐。   源代码部分,请参照源码目录中命名的文件夹,查看对应功能。
    2022-03-02 10:15:20下载
    积分:1
  • 简单演示多线程的创建和使用VC++
    一个VC++ Win32程序执行单元——多线程 的创建和使用例子,测试时请在CMD控制台中运行Exe,之后看到的运行结果如图所示,代码部分,请参考以下:   HANDLE CreateThread(    LPSECURITY_ATTRIBUTES lpThreadAttributes, // 安全    DWORD dwStackSize, // 堆栈大小    LPTHREAD_START_ROUTINE lpStartAddress, // 起始地址(函数名)    LPVOID lpParameter, // 参数    DWORD dwCreationFlags, // 是否启动    LPDWORD lpThreadId // 新生成的线程ID   );   int main(int argc, char* argv[])   {    HANDLE hThreadProc;    DWORD dwThreadId;    hThreadProc=CreateThread(    NULL,    NULL,    ThreadProc,    NULL,    0, //使线程立即运行    &dwThreadId    );    printf("Now another thread has been created,ID=%d ",dwThreadId);    //等待新线程运行结果    ::WaitForSingleObject(hThreadProc,INFINITE);    ::CloseHandle(hThreadProc);    return 0;   }
    2022-03-26 13:48:22下载
    积分:1
  • 2种方案的VC++ 界面换肤模块
    一个挺有用的VC++ 界面换肤模块,里面包括了了两种换肤方案,“方案一”文件夹中实现的是加载皮肤文件实现界面换肤,“方案二”文件夹中实现的是加载组件库实现界面换肤。   加载皮肤文件实现界面换肤:选择“界面修改”/“加载界面文件”命令,在打开的窗口中选择皮肤文件(.ski),即可更换界面皮肤.   另外还有加载组件库实现界面换肤,使用的是WndDll.dll,请下载源码具体测试吧。   加载窗体皮肤文件要注意:窗体各部分位图资源:   0,1,2: 分别为标题栏的左中右3部分   3,4,5: 分别为左,下,右边框   6,7,8,9,10,11: 为标题栏普通按钮和热点按钮   12,13: 表示左下角和右下角位图   14: 表示背景位图
    2022-03-23 09:54:11下载
    积分:1
  • VC++ Win32 DLL的创建:获取最大和最小数(使用导出函数关键字)
    VC++ 创建Win32 DLL的例子附源码:获取最大和最小数(使用导出函数关键字)。编译本项目源码后,将直接在Debug目录下生成Get_Max_Min.Dll文件。   Get_Max_Min_Dll文件夹下为Win32 DLL的创建:获取最大和最小数(使用.def文件)源码。
    2023-02-27 05:35:03下载
    积分:1
  • VC++ ado 登录模块实现范例
    VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
    2023-03-17 05:10:03下载
    积分:1
  • 696516资源总数
  • 106658会员总数
  • 16今日下载