绘制一个曲线图,因为数据量比较大会很长,想加一个滚动条,用什么方法比较好?
初学c++builder,没什么经验,在绘图时遇到一些问题:
1.以前用panel和paintbox画过没有滚动条的曲线,不知道能不能用上?
尝试过使用chart直接画,效果不好,不知道PerformanceGraph行不行?
请各位帮帮忙,分析一下哪种方法可行?
(数据存储在数组中,大小可变,但数据量有点大)
2.希望实现鼠标移动到曲线上时能够动态显示数据大小,最好不显示在edit当中,类似鼠标提示一样的动态提示
请各位多多指教。。。
[解决办法]
1.我是在ScrollBox里放Image
2.用汽泡提示
void __fastcall TForm1::BalloonHint(String msg){ NOTIFYICONDATA nid; Shell_NotifyIcon(NIM_DELETE, &nid);//删除提示框 ZeroMemory(&nid, sizeof(nid)); // 将结构icondata的各域初始化为0 nid.cbSize = sizeof(nid); nid.hWnd = Handle; nid.uID = NULL; nid.uFlags = NIF_MESSAGE | NIF_ICON | NIF_TIP | NIF_INFO; // 关键1 nid.hIcon = Application->Icon->Handle; // nid.uCallbackMessage = MY_ICONMESSAGE; nid.dwInfoFlags = 1; nid.uTimeout = 1000; strncpy(nid.szInfo, msg.c_str(), sizeof(nid.szInfo)); // 关键2 strncpy(nid.szInfoTitle, Form1->Caption.c_str(), sizeof(nid.szInfoTitle)); // 关键3// strncpy(nid.szTip, (g_strAppTitle + " - by ccrun").c_str(), sizeof(nid.szTip)); Shell_NotifyIcon(NIM_ADD, &nid);//显示提示框 ::Sleep(4000); Shell_NotifyIcon(NIM_DELETE, &nid);//删除提示框 }//=============================================================================
[解决办法]
他这个InitScroll是一个自定义函数,你在.h的Form类里声明一下,然后将InitScroll的定义部分复制到.cpp文件中就可以用了。
画图的数据在数组中,你弄个循环调用DrawCurve即可。
[解决办法]
呵呵,DrawCurve就是代表你自己写的画图函数,随便起了个名字而已