MFC,如何在图片控件上边画线

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MFC,如何在图片控件上边画线相关的知识,希望对你有一定的参考价值。

void CBezierDlg::OnPaint()

    if (IsIconic())
    
        CPaintDC dc(this); // 用于绘制的设备上下文
 
        SendMessage(WM_ICONERASEBKGND, reinterpret_cast<WPARAM>(dc.GetSafeHdc()), 0);
 
        // 使图标在工作区矩形中居中
        int cxIcon = GetSystemMetrics(SM_CXICON);
        int cyIcon = GetSystemMetrics(SM_CYICON);
        CRect rect;
        GetClientRect(&rect);
        int x = (rect.Width() - cxIcon + 1) / 2;
        int y = (rect.Height() - cyIcon + 1) / 2;
 
        // 绘制图标
        dc.DrawIcon(x, y, m_hIcon);
    
    else
    
        CDialogEx::OnPaint();
    
        //放在这里
        CDC *pDC;
        pDC = m_picShow.GetDC();
        CPen Pen(PS_SOLID,2,RGB(0,255,0));
        CPen *oldPen = pDC->SelectObject(&Pen);
        pDC->MoveTo(500,100);
        pDC->LineTo(600,100);
        pDC->SelectObject(oldPen);

参考技术A CRect rect;
CDC *pDC = GetDlgItem(ID号)->GetDC();
GetDlgItem(ID号)->GetClientRect(&rect);
pDC->MoveTo(0,0);
pDC->LineTo(rect.right,rect.bottom);
ReleaseDC(pDC);
ID号就是你图片控件的资源号,默认的静态图片控件ID是IDC_STATIC,这必须改,改成什么都行,只要不和其他的重。这是画一条左上角到右下角的直线。
参考技术B 首先需要更改下控件id,然后为你的图片控件关联变量m_pic——默认的静态图片控件id是IDC_STATIC,是不能直接添加变量的。
画线:

CDC *pDC = m_pic.GetWindowDC();
pDC->MoveTo(1,1);
pDC->LineTo(10,10);
ReleaseDC(pDC);
参考技术C 建议你去看下孙鑫的教学视频的”第十课 图形的绘制,如何使用自定义画笔“http://www.pconline.com.cn/pcedu/empolder/gj/vc/0607/820674.html给你连接!

mfc里给picture控件加载一张位图,然后在位图上画一条线,该怎么做

首先需要更改下控件id,然后为你的图片控件关联变量m_pic——默认的静态图片控件id是IDC_STATIC,是不能直接添加变量的。

画线:


CDC *pDC = m_pic.GetWindowDC();

pDC->MoveTo(0,0);

pDC->LineTo(100,100);

参考技术A 先获取图片控件的DC,然后利用DC相关函数加载位图和画线。追问

我知道加载位图,也知道画线,但不清楚怎么具体结合,你能具体代码解释一下吗

以上是关于MFC,如何在图片控件上边画线的主要内容,如果未能解决你的问题,请参考以下文章

请问如何 在MFC,用最简单的方法画出两点一线?而且要持续显示~~

如何把几个MFC控件组合在一起

在MFC中,如何读取外部的位图文件,让它显示在图片控件(Picture Control)中?

MFC中如何在一个picture 控件中显示一张opencv读入的图片?

MFC 我在几个图片控件显示了图片,如何获取这几个图片的资源编号?

如何在 MFC 工具栏中添加自定义控件