怎样用MFC的对话框中画坐标曲线图

怎样用MFC的对话框中画坐标曲线图,第1张

这个得看你是单文档还是基于对话框的结构了。

单文档的绘图一般都在OnDraw()当中进行,基于对话框的是OnPaint()

你只需要计算出合适的坐标就好了。

利用CDC类下的LineTo MoveTo 绘制直线即可

对应的曲线也有相应的函数,这是静态的。

我这里有一个动态绘制的Demo,以前参考过的

不知道符不符合楼主的要求。要的话可以给个邮箱

CMFCColorButton是Visual Studio 2008 SP1版本以上提供的颜色采集器。

下面介绍下使用步骤:
1新建基于对话框的工程,名称为MyColorButtonDemo;
2拖动一个按钮到窗体上,为其添加变量,变量类型为CMFCColorButton,变量名为m_ColorPicker;

3添加按钮单击事件:

void CMyColorButtonDemoDlg::OnBnClickedButton1() 

    COLORREF color = m_ColorPickerGetColor(); 
    if (color == -1) 
    { 
        color = m_ColorPickerGetAutomaticColor(); 
    } 

4在对话框的初始化函数里面添加以下代码:

BOOL CMyColorButtonDemoDlg::OnInitDialog() 

    CDialog::OnInitDialog(); 
    //中间省略····· 
 
    m_ColorPickerEnableAutomaticButton(_T("默认值"), RGB(0, 0, 0)); 
    m_ColorPickerEnableOtherButton(_T("其余颜色")); 
    m_ColorPickerSetColor((COLORREF)-1); 
    m_ColorPickerSetColumnsNumber(10);     
 
    return TRUE;  // 除非将焦点设置到控件,否则返回 TRUE 

5这时,编译运行就可以看到效果了,但是没有应用系统主题,在应用程序的实现文件里面:

BOOL CMyColorButtonDemoApp::InitInstance() 

    //····· 
    SetRegistryKey(_T("应用程序向导生成的本地应用程序")); 
    CMFCVisualManager::SetDefaultManager(RUNTIME_CLASS(CMFCVisualManagerWindows)); //这一句 
    CMyColorButtonDemoDlg dlg; 
    //···· 

6此时再次运行就可以看到最后效果了。如下图:


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/yw/13387538.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-07-26
下一篇 2023-07-26

发表评论

登录后才能评论

评论列表(0条)

保存