24小时热门版块排行榜    

Znn3bq.jpeg
汕头大学海洋科学接受调剂
查看: 1258  |  回复: 7
当前只显示满足指定条件的回帖,点击这里查看本话题的所有回帖

mmenglu

铜虫 (初入文坛)

[求助] VC界面求助

在VC中,基于对话框的应用程序可以调用画图命令输出曲线吗?我弄了一个基于对话框的MFC应用程序界面计算实验参数,算法有了,能不能通过一个控件输出曲线,怎么做?感谢高手不吝赐教,万分感激啊!!!
回复此楼

» 猜你喜欢

已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

libralibra

至尊木虫 (著名写手)

骠骑将军

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xzhdty: 金币+2, 谢谢骠骑将军 2012-06-28 20:43:16
得到控件cdc,然后直接用笔刷画试试
具体参考这帖子
http://paulfzm.iteye.com/blog/974630
matlab/VB/python/c++/Java写程序请发QQ邮件:790404545@qq.com
3楼2012-06-28 15:42:19
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
查看全部 8 个回答

wpacer

铁虫 (正式写手)

【答案】应助回帖

★ ★
感谢参与,应助指数 +1
xzhdty: 金币+2, 谢谢 2012-06-28 20:43:26
可以,在对话框中加入一个组合框(GroupBox)控件,然后在这个控件中画图
无标题.png
http://kuai.xunlei.com/d/GXSUWBTGMHGT?p=130497

» 本帖已获得的红花(最新10朵)

朗月茶馆董事馆长
2楼2012-06-28 10:29:33
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

voice2001

铜虫 (著名写手)

【答案】应助回帖


感谢参与,应助指数 +1
御剑江湖: 金币+1, 谢谢 2012-06-30 18:45:04
建议用TCHART控件
详细情况可以到网上下载相关资料
4楼2012-06-29 13:43:07
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖

wpacer

铁虫 (正式写手)

【答案】应助回帖

★ ★
御剑江湖: 金币+2, 谢谢 2012-06-30 18:45:24
jjdg: 编辑内容 2012-07-03 00:48
jjdg: 编辑内容 2012-07-03 00:49
示例代码:
//在CFormView视图中的GroupBox控件中画经度、纬度、高程变化走势图
void CvrpView:: DrawCordTrend()
{
        CWnd* pWnd;
        CString strFlag,str;
        CRect rect;
        CDC* pDC;
        CPen pen,*pOldPen,pen2;
        //画高程、经度、纬度变化走势图的画笔
        CPen penAlti,penLong,penLati;
        //画(无差分)高程、经度、纬度变化走势图的画笔
        CPen penNAlti,penNLong,penNLati;

        CBrush brush,*pOldBrush;
        POINT ptOrig;
        COLORREF crRef;
        int i,iXNum,iYNum,iXStep,iYStep;
        long iXCenter,iYCenter;

        double dAltiMax,dAltiMin,dLongMax,dLongMin,dLatiMax,dLatiMin;

       
        pWnd = (CStatic*)GetDlgItem( IDC_STATIC_TREND );
        pWnd->Invalidate( );

        pWnd->GetWindowRect(& rect );
        pWnd->ScreenToClient(&rect);
       
        rect.left += 18;//10
        rect.top += 17; //15
        rect.right -= 18;//10
        rect.bottom -= 12; //10
       
        ptOrig.x = rect.left;
        ptOrig.y = ( rect.bottom + rect.top ) / 2 ;

        iXCenter = ( rect.left + rect.right ) / 2 ;
        iYCenter = ( rect.bottom + rect.top ) / 2 ;

       
        pDC = pWnd->GetDC();
        //背景透明
        pDC->SetBkMode( TRANSPARENT );
       
        //通用笔,灰白色
        pen2.CreatePen(PS_SOLID,2,RGB(128,128,128) );
        pen.CreatePen(PS_SOLID,1,RGB(0,126,0) );
       
        //画高程曲线的笔
        penAlti.CreatePen(PS_SOLID,2,RGB(255,0,0) );
        //画经度曲线的笔
        //penLong.CreatePen(PS_SOLID,2,RGB(0,255,0) );
        penLong.CreatePen(PS_SOLID,2,RGB(200,200,0) );
        //画纬度曲线的笔
        penLati.CreatePen(PS_SOLID,2,RGB(0,0,255) );

        //画(无差分)高程曲线的笔
        penNAlti.CreatePen(PS_DOT,1,RGB(255,0,0) );
        //画(无差分)经度曲线的笔
        //penNLong.CreatePen(PS_DOT,1,RGB(0,255,0) );
        penNLong.CreatePen(PS_DOT,1,RGB(200,200,0) );
        //画(无差分)纬度曲线的笔
        penNLati.CreatePen(PS_DOT,1,RGB(0,0,255) );

        pOldPen = pDC->SelectObject(&pen2);

        //刷子
        brush.CreateSolidBrush( RGB( 255,255,255) );
        pOldBrush = pDC->SelectObject( &brush);
        pDC->FillRect( &rect,&brush );

        //画边框
        pDC->MoveTo( rect.left,rect.top );
        pDC->LineTo( rect.left,rect.bottom );
        pDC->LineTo( rect.right,rect.bottom );
        pDC->LineTo( rect.right,rect.top );
        pDC->LineTo( rect.left,rect.top );
       

        //画X、Y轴
        pDC->MoveTo( rect.left , ( rect.bottom + rect.top ) / 2 );
        pDC->LineTo( rect.right, ( rect.bottom + rect.top ) / 2 );
       
        pDC->TextOut( rect.left - 16,( rect.bottom + rect.top ) / 2 - 8 ,"00" );
        pDC->TextOut( rect.right + 6 ,( rect.bottom + rect.top ) / 2 - 8 ,"X" );
        pDC->TextOut( rect.right - 10 ,rect.bottom - 3 ,"108" ); //68

        pDC->MoveTo( ( rect.left + rect.right ) / 2  , rect.top );
        pDC->LineTo( ( rect.left + rect.right ) / 2  , rect.bottom );
       
        pDC->TextOut( rect.left - 16,rect.top - 4 ,"26" ); //+8,14
        pDC->TextOut( rect.left - 16 ,rect.bottom - 4 ,"-26" ); //-10,-8,-14

        pDC->TextOut( ( rect.left + rect.right ) / 2 - 9,rect.bottom - 3 ,"54" ); //34
       
        //画轴上的箭头
        pDC->MoveTo( rect.right,( rect.bottom + rect.top ) / 2 );
        pDC->LineTo(  rect.right - 6,( rect.bottom + rect.top ) / 2 - 6 );
        pDC->MoveTo( rect.right,( rect.bottom + rect.top ) / 2 );
        pDC->LineTo(  rect.right - 6,( rect.bottom + rect.top ) / 2 + 6 );

        pDC->MoveTo( ( rect.left + rect.right ) / 2,rect.top );
        pDC->LineTo( ( rect.left + rect.right ) / 2 - 6 ,rect.top + 6 );
        pDC->TextOut( ( rect.left + rect.right ) / 2 + 9,rect.top ,"Y" ); //34

        pDC->MoveTo( ( rect.left + rect.right ) / 2,rect.top );
        pDC->LineTo( ( rect.left + rect.right ) / 2 + 6 ,rect.top + 6 );

       
        //画一个点,第一象限45度角
        pDC->SelectObject(&penNLati);
        pDC->MoveTo( ( rect.left + rect.right ) / 2  , ( rect.bottom + rect.top ) / 2  );
        pDC->LineTo(( rect.left + rect.right ) / 2 +(rect.right-rect.left)/2,( rect.bottom + rect.top ) / 2+( rect.top - rect.bottom ) / 2  );
        pDC->MoveTo( ( rect.left + rect.right ) / 2 +(rect.right-rect.left)/4 ,( rect.bottom + rect.top ) / 2+( rect.top - rect.bottom ) / 4  );
       
        pDC->TextOut(( rect.left + rect.right ) / 2 +(rect.right-rect.left)/4 ,( rect.bottom + rect.top ) / 2+( rect.top - rect.bottom ) / 4,"1(45)" );


        pDC->SelectObject(&pen);
        iXNum = 48;//32
        iYNum = 25;//8,14
        iXStep = ( rect.right - rect.left ) / ( 2 * iXNum );
        iYStep = ( rect.bottom - rect.top ) / ( 2 * iYNum );

        //画横轴栅格线
        for ( i = 1;i < ( iYNum + 1 ); i ++)
        {
                pDC->MoveTo( rect.left, iYCenter - i * iYStep );
                pDC->LineTo( rect.right, iYCenter - i * iYStep );

                pDC->MoveTo( rect.left, iYCenter + i * iYStep );
                pDC->LineTo( rect.right, iYCenter + i * iYStep );
        }

        //画纵轴栅格线
        for ( i = 1;i < ( iXNum + 6 ); i ++) //12
        {
                pDC->MoveTo( iXCenter - i * iXStep, rect.top );
                pDC->LineTo( iXCenter - i * iXStep, rect.bottom );

                if ( !( i % 18 ) ) //17
                {
                        str.Format("%02d",i);
                        //pDC->TextOut( iXCenter - i * iXStep - 8,rect.bottom - 3 ,str);
                        pDC->TextOut( i * iXStep - 4,rect.bottom - 3 ,str);
                        str.Format("%02d",( 108 - i ) );
                        pDC->TextOut( rect.right -  i * iXStep - 6,rect.bottom - 3 ,str);
                }

                pDC->MoveTo( iXCenter + i * iXStep, rect.top );
                pDC->LineTo( iXCenter + i * iXStep, rect.bottom );

        }
       
.................
       
        //恢复系统原来的画笔
        pDC->SelectObject( pOldPen );
        pDC->SelectObject( pOldBrush );
        ReleaseDC( pDC );
        pDC = NULL;

}

[ Last edited by jjdg on 2012-7-3 at 00:49 ]
朗月茶馆董事馆长
5楼2012-06-29 16:10:47
已阅   回复此楼   关注TA 给TA发消息 送TA红花 TA的回帖
最具人气热帖推荐 [查看全部] 作者 回/看 最后发表
[考研] 271求调剂 +30 2261744733 2026-04-11 30/1500 2026-04-15 06:13 by 逍遥三郎
[考研] 085400电子信息类(川大控制工程)求调剂可跨专业 求老师联系 +6 626776879 2026-04-08 6/300 2026-04-14 20:09 by gwjxiaolang
[考研] 302分求调剂 +10 凡语祈愿 2026-04-08 11/550 2026-04-14 16:50 by jiangguiquan11
[考研] 297工科调剂? +13 河南农业大学-能 2026-04-13 13/650 2026-04-14 16:46 by Art1977
[考研] 恳请有学校收留 +3 柯淮然 2026-04-12 3/150 2026-04-14 16:25 by 逆水乘风
[考研] 279学硕食品专业求调剂院校 20+6 孤独的狼爱吃羊 2026-04-12 28/1400 2026-04-14 15:44 by zs92450
[考研] 305求调剂 +8 玛卡巴卡boom 2026-04-11 8/400 2026-04-14 09:04 by pengliang8036
[考研] 机械工程313分找工科调剂 +4 双一流本科机械 2026-04-08 4/200 2026-04-14 07:32 by Abskk
[基金申请] 有爆料,一个青年教师卖房得400万,然后换了一个四青帽子 +11 babu2015 2026-04-08 11/550 2026-04-13 16:33 by probebill
[考研] 一志愿华中农微生物,288分,三年实验经历 +11 代fish 2026-04-09 11/550 2026-04-12 10:21 by Hayaay
[考研] 303求调剂 +14 SereinQ 2026-04-10 15/750 2026-04-11 20:43 by 蓝云思雨
[考研] 0859,337求调剂 +4 研s. 2026-04-10 4/200 2026-04-11 11:34 by caotw2020
[考研] 288求调剂 +15 代fish 2026-04-09 16/800 2026-04-11 10:26 by wwj2530616
[考研] 工科273调剂 +6 X1999 2026-04-09 7/350 2026-04-11 10:23 by zhq0425
[考研] 本科211 工科085400 280分求调剂 可跨专业 +11 LZH(等待调剂中 2026-04-10 11/550 2026-04-11 08:39 by zhq0425
[考研] 调剂 化学 307 +21 73372112 2026-04-09 23/1150 2026-04-10 23:53 by wj165256
[考研] 309求调剂 +14 wdhw 2026-04-10 15/750 2026-04-10 21:06 by zhouxiaoyu
[考研] 22408 366分,本科211,一志愿西工大 +4 Rubt 2026-04-09 4/200 2026-04-10 19:51 by chemisry
[考研] 一志愿中科院105500专业总分315求调剂 +6 lallalh 2026-04-09 7/350 2026-04-09 17:51 by lallalh
[考研] 286求调剂 +19 Faune 2026-04-08 20/1000 2026-04-09 08:36 by 哦哦123
信息提示
请填处理意见