SetBkMode(TRANSPARENT);pDC->Rectangle(10,40,310,350);pDC->Ellipse(50,50,210,220);pDC->Ellipse(70,240,280,320)//设置映射模式pDC->SetMapMode(MM_ANISOTROPIC);CSizewinSize=CSize(1024,768);pDC->SetWindowExt(winSize);//设定窗口大小//得到实际设备每逻辑英寸的像素数量intxLogPixPerInch,yLogPixPerInch;xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);//得到设备坐标和逻辑坐标的比例以下是实现打印:intxExt,yExt;xExt=winSize.cx*600/xLogPixPerInch;//按照打印机扩大视口yExt=winSize.cy*600/yLogPixPerInch;pDC->SetViewportExt(xExt,yExt);//设定视口大小-IMDN开发者社群-imdn.cn"> SetBkMode(TRANSPARENT);pDC->Rectangle(10,40,310,350);pDC->Ellipse(50,50,210,220);pDC->Ellipse(70,240,280,320)//设置映射模式pDC->SetMapMode(MM_ANISOTROPIC);CSizewinSize=CSize(1024,768);pDC->SetWindowExt(winSize);//设定窗口大小//得到实际设备每逻辑英寸的像素数量intxLogPixPerInch,yLogPixPerInch;xLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSX);yLogPixPerInch=pDC->GetDeviceCaps(LOGPIXELSY);//得到设备坐标和逻辑坐标的比例以下是实现打印:intxExt,yExt;xExt=winSize.cx*600/xLogPixPerInch;//按照打印机扩大视口yExt=winSize.cy*600/yLogPixPerInch;pDC->SetViewportExt(xExt,yExt);//设定视口大小 - IMDN开发者社群-imdn.cn">
登录
首页 » VC++源码 » VC++ 设置打印图形的位置

VC++ 设置打印图形的位置

于 2022-01-27 发布 文件大小:19.52 kB
0 90
下载积分: 2 下载次数: 1

代码说明:

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); //设定视口大小

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

发表评论

0 个回复

  • VC++读取AutoCAD格式的dxf文件
    VC++编程实现读取AutoCAD格式的dxf文件,打开DXF文件后,本程序可放大、缩小预览效果。可以把本程序看作是一个打开DXF文件格式的查看器。源代码中的CadIO.dll文件请放在与编译后的Exe文件同级目录下。测试程序的源代码在cadDXFLibcadlib_srcCadLibTest目录下。
    2022-07-01 21:46:50下载
    积分:1
  • VC++ 表格式简历打印的实现
    本源码演示在VC++中打印简历模板,是一个采用表格设计的简历界面,VC++将按设计的模式打印出来,就像使用Word打印一样的功能。   以下代码可作为参考:   //获取位图所有数据   m_bitdata = m_pRecord->GetFields()->GetItem((long)9)->GetChunk(m_factsize);   HBITMAP m_hmap ;   if (m_bitdata.vt==VT_ARRAY |VT_UI1)   {    //定义一个数据缓冲区    m_bitbuffer = new char[m_factsize];    //将m_buffer指向m_bitdata    SafeArrayAccessData(m_bitdata.parray,(void**)&m_buffer);    //复制位图数据到m_bitbuffer;    memcpy(m_bitbuffer,m_buffer,m_factsize);    SafeArrayUnaccessData(m_bitdata.parray);    void* m_factbitdata ; //实际的位图数据    //temp指向位图信息头    temp = m_bitbuffer+sizeof(BITMAPFILEHEADER);    BITMAPINFOHEADER * m_bitheader = (BITMAPINFOHEADER*)temp;    //获取位图信息,它包括位图信息头和调色板    BITMAPINFO* m_bitinfo = (BITMAPINFO*)temp;    //获取位图的实际数据    m_factbitdata = (void*)(m_buffer+((LPBITMAPFILEHEADER)m_bitbuffer)->bfOffBits);    CClientDC m_dc(this);    //创建位图    hbitmap = CreateDIBitmap(m_dc.m_hDC,m_bitheader,CBM_INIT,m_factbitdata,m_bitinfo,DIB_RGB_COLORS);    delete [] m_bitbuffer;   }
    2022-07-02 18:31:16下载
    积分:1
  • 端口扫描VC6.0程序示例
    扫描端口,程序里面有一些相关的技巧是可以借鉴的,比如增加列表框标题栏的某一列、在列表框中加一条、显示列表框标题栏、单击“扫描单个端口”单选按钮、单击“扫描多个端口”单选按钮、开始扫描时绑定进度条组件、不合理IP的处理、扫描单个端口、连接主机,测试端口是否打开、设置扫描完毕状态、将扫描结果填充到列表框中、测试主机的某个端口是否打开、保存扫描结果到文本文件中等。
    2022-10-09 07:35:03下载
    积分:1
  • VC++ 定义3种样式的ComboBox下拉列表框
    VC++ 定义3种样式的ComboBox下拉列表框(组合框),主要是简易式、下拉式、下拉列表式。在简易式或下拉式的编辑框中输入文本,然后点击[
    2022-02-02 08:39:36下载
    积分: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++ 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串口调试、发送和接收消息范例
    VC串口调试、发送和接收消息数据范例,这里面涉及到线程控制、串口调试、发送消息、接收消息等编写技巧,还有串口读和写操作,独占方式、延时发送消息,设置发送和接收缓冲区大小等,关于一些参数定义和接收数据函数的代码如下:   OVERLAPPED tOverLaped= {0}; //线程函数使用的OVERLAPPED结构   OVERLAPPED wOverLaped = {0}; //写操作使用的OVERLAPPED结构   OVERLAPPED rOverLaped = {0}; //读操作使用的OVERLAPPED结构   BOOL IsFun = TRUE; //线程是否运行   BOOL IsStop = FALSE; //数据是否发送完毕   //自定义消息处理函数,用于接收数据   void CSeriesPortDlg::OnRecieveData(WPARAM wParam, LPARAM lParam)   {    DWORD res,factbyte;    memset(DataBuffer,0,1024); //初始化数据缓冲区    COMSTAT rst;    ClearCommError(hCom,&res,&rst);//清空串口错误标志,记录当前通信状态    rOverLaped.hEvent = CreateEvent(NULL,TRUE,FALSE,NULL); //创建一个事件对象    if (ReadFile(hCom,DataBuffer,rst.cbInQue,&factbyte,&rOverLaped)) //读取数据到缓冲区中    {    DataBuffer[rst.cbInQue]= 0;    IsStop = FALSE;    }    else    {    res = WaitForSingleObject(rOverLaped.hEvent,5000);    }    IsStop = FALSE;    MessageBox(DataBuffer);   }
    2023-05-17 19:05:03下载
    积分:1
  • VC++ ado 登录模块实现范例
    VC++ ado 登录模块实现范例,因为使用ADO模块,所以要先初始化COM组件库,然后调用ADO库连接数据库,读取用户名密码是否与数据库的相符,相符则登录成功,不相符则弹出提示信息。本源码比较简单,演示了基本的基于数据库的用户名和密码判断程序,面向VC++初学者吧。
    2023-03-17 05:10:03下载
    积分:1
  • 多任务多线程断点续传
    VC++下实现多任务多线程并发可断点续传功能的例程源代码VC++下实现多任务多线程并发可断点续传功能的例程源代码
    2022-03-21 18:31:32下载
    积分:1
  • 毫秒级定时器 VC范例及
    VC++编写的毫秒级定时器实例,上一次的终止值变成新的起始值,发送消息通知对话框该更新时间了。   //更新时间   void CMilliSecondDlg::OnUpdateTime()   {    struct _timeb timebuffer;    char *timeline;    //获得毫秒级的时间    _ftime( &timebuffer );    timeline = ctime(&(timebuffer.time));    //格式化时间    m_strTime.Format("当前时间是:%.19s.%hu %s", timeline, timebuffer.millitm, &timeline[20]);    UpdateData(FALSE);   }
    2023-05-15 18:00:02下载
    积分:1
  • 696518资源总数
  • 104292会员总数
  • 28今日下载