怎样用C++的MFC编写一个示波器控件

数字存贮示波器的制作
要求:编程实现一个数字存贮示波器。示波器的踪数1-10可变,示波器的数据采样点可达1024。
示波器可以实现图形以不同的形式显示(如波形图,柱图等)。
示波器的横向,纵向均可以用鼠标进行分辨率调整。
示波器提供文件接口,可以文件读写。
结果以DLL形式封装。

创建一个客户程序对示波器进行测试。

参考:SIMULINK的示波器。

5个回答

网上有类似的,就是不知道你有没有帐号下载:个用于MFC的示波器控件源代码。

huaxiang_2015
huaxiang_2015 在吗?能再帮个忙吗?
5 年多之前 回复
huaxiang_2015
huaxiang_2015 回复91program: 已下,虽然之前已经下载过了,不过仍然很感谢你O(∩_∩)O
5 年多之前 回复
91program
91program 回复huaxiang_2015: 已发。
5 年多之前 回复
huaxiang_2015
huaxiang_2015 已采纳,2622109902@qq.com 谢谢~~
5 年多之前 回复
91program
91program 回复huaxiang_2015: 你先采纳,然后留邮箱,我下载了给你。但能否用,我不保证噢。
5 年多之前 回复
huaxiang_2015
huaxiang_2015 大神你有没有免费的账号借我下载一个O(∩_∩)O~
5 年多之前 回复

谢谢你,但是注册账号好难啊~~

//bg
if(1){
    cairo_pattern_t *pat = cairo_pattern_create_linear(0, 0, w, w);
    cairo_pattern_add_color_stop_rgb(pat, 0.0, 0.98, 0.98, 0.98);
    cairo_pattern_add_color_stop_rgb(pat, 0.5, 0.7, 0.7, 0.9);
    cairo_pattern_add_color_stop_rgb(pat, 1.0, 0.95, 0.95, 0.95);

    cairo_rectangle(cr, 0, 0, w, h);
    cairo_set_source(cr, pat);
    cairo_fill(cr);
    cairo_pattern_destroy(pat);
}

图片说明

//grid line
if(1){
    for(int i=1; i<10; ++i)
    {
        int x = w/10 * i;
        cairo_move_to(cr, x, 0);
        cairo_line_to(cr, x, h);
    }

    for(int i=1; i<6; ++i)
    {
        int y = h/6 * i;
        cairo_move_to(cr, 0, y);
        cairo_line_to(cr, w, y);
    }

    const double dash_def[] = {5, 5};
    int len_dash_def  = sizeof(dash_def) / sizeof(dash_def[0]);

    cairo_set_dash(cr, dash_def, len_dash_def, 0);
    cairo_set_line_width(cr,1);
    cairo_set_source_rgba(cr,0.0,0.5,0.0,0.5);
    cairo_stroke(cr);
}

图片说明

//test scope
if(1){
    cairo_new_path(cr);
    cairo_move_to(cr,0,0);
    for(int i=0; i<300; ++i)
    {
        cairo_line_to(cr, i, sin(pi/100 * i) * 100 + 200);
    }

    cairo_set_dash(cr, 0, 0, 0);
    cairo_set_line_width(cr,1);
    cairo_set_source_rgb(cr,1.0,0.0,0.0);
    cairo_stroke(cr);
}

图片说明

借用开元的库,,,或者相关的源码

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
立即提问
相关内容推荐