荔园在线

荔园之美,在春之萌芽,在夏之绽放,在秋之收获,在冬之沉淀

[回到开始] [上一篇][下一篇]


发信人: oopilix (PADRAD), 信区: Visual
标  题: [FR]VC-波形显示控件
发信站: 荔园晨风BBS站 (Tue May 13 20:24:43 2003), 站内信件

我像做一个波形显示控件,根据客户输入的数据即时绘出图形。我在接口中定义了
一个method,如下
STDMETHODIMP CChartCtl::PlotChart(double plot[], long num)
{
    // TODO: Add your implementation code here
    HDC hDC=GetDC();
    RECT rect;
    int oldx,oldy,newx,newy;
    GetClientRect(&rect);
    hBlackBrush= CreateSolidBrush(RGB(0,0,0));
    SelectObject(hDC,hBlackBrush);
    Rectangle(hDC,rect.left+60 ,rect.top+20 ,rect.right-40 ,rect.
bottom-40 );
    hRedPen= CreatePen(PS_SOLID,1,RGB(255,0,0));
    SelectObject(hDC,hRedPen);
    for (int i=0; i<num; i++) {
         newy = rect.top +20-((rect.bottom -40-rect.top
-20)*plot[i])/10;
         newx = i*(rect.right -40-rect.left -60)/num+rect.left +60;
         if (i==0)
            MoveToEx(hDC, newx, newy, NULL);
         else
            MoveToEx(hDC, oldx, oldy, NULL);
         LineTo(hDC, newx, newy);
         oldx = newx;
         oldy = newy;
    }
    ReleaseDC(hDC);
    return S_OK;
}

编译通过,但是调用控件,并没有划出我希望得到的曲线,怎么会事呢?




你是如何调用这段语句的?对控件来说,要在方法中调用InvalidateControl()使
控件无效,来触发控件的OnDraw(),因此你的这个函数的调用要嵌入在OnDraw()中

void CChartCtl::OnDraw(.....)
{
   ...
   PlotChart(plot[], num);
   ...
}
而plot[]和num送入控件后就要调用InvalidateControl()




我在我的程序中加入一个事件的确能通过的
LRESULT OnLButtonDblClk(UINT uMsg, WPARAM wParam, LPARAM lParam, BOOL&
bHandled)
    {
        // TODO : Add Code for message handler. Call DefWindowProc if
necessary.
        WORD xPos = LOWORD(lParam);
        WORD yPos = HIWORD(lParam);
        HDC hDC;
        HBRUSH hBrush;
        HPEN hPen;
        PAINTSTRUCT PtStr;
        hDC=GetDC();
        hPen=(HPEN)GetStockObject(BLACK_PEN);
        hBrush=(HBRUSH)GetStockObject(DKGRAY_BRUSH);
        SelectObject(hDC,hBrush);
        SelectObject(hDC,hPen);
        RoundRect(hDC,xPos,yPos,xPos+100,yPos+200,15,15);

        ReleaseDC(hDC);

        return 0;
    }

--
※ 来源:·荔园晨风BBS站 bbs.szu.edu.cn·[FROM: 61.144.235.41]


[回到开始] [上一篇][下一篇]

荔园在线首页 友情链接:深圳大学 深大招生 荔园晨风BBS S-Term软件 网络书店