解决方案 »
- 多线程 和 mciSendCommand播放音乐
- 求助~MFC如何实现在对话框中输入坐标,根据坐标画图?
- 主对话框中添加子对话框
- 什么是设备描述表?真的是个表?包含那些东西?
- 使用stl产生很多warning信息怎么去掉?
- 迷惑的问题:关于编写Ocx控件中属性和方法的序号顺序问题,解惑者有分
- 正利用RAS API做ADSL拨号程序(SDK),无法得到状态信息、请教。高分必送.
- 面对纷繁的编程语言世界,一个本科生对VC的看法
- ?才鸟提问:int main(int argc, char* argv[]),解释一下这个参数把(xieha)
- 网络,菜鸟问题,资源泄漏!!
- 你好,我想问你关于MFC基于对话框的问题
- 基于socket的服务器与客户端实现对话和传输文件出错,不是MFC
void Dlg::OnHide()
{
// TODO: Add your control notification handler code here
Dlg *dlg;
dlg = new Dlg();
dlg->Create(IDD_DIALOG2);
dlg->ShowWindow(SW_HIDE); =========> 这句的意思 dlg一生成就被隐藏了。}
你设置个断点,看程序能不能跑进去执行
Src X = 2373.000000, Y = -79.256364, Dst X = 2380.000000, Y = -45.357559Src X = 2380.000000, Y = -45.357559, Dst X = 2386.000000, Y = -429.454917[color=#FF0000]
.440755
Src X = 11866.000000, Y = -979.440755, Dst X = 11880.000000, Y = -171.449890Src X = 11880.000000, Y = -171.449890, Dst X = 11893.000000, Y = -294.009423Src X = 11893.000000, Y = -294.009423, Dst X = 11906.000000, Y = -999.994764Src X = 11906.000000, Y = -999.994764, Dst X = 11920.000000, Y = -289.848098Src X = 11920.000000, Y = -289.848098, Dst X = 11933.000000, Y = -174.913334.393094Src X = 136693.000000, Y = -961.393094, Dst X = 136700.000000, Y = -587.177147Src X = 136700.000000, Y = -587.177147, Dst X = 136706.000000, Y = -132.810933Src X = 136706.000000, Y = -132.810933, Dst X = 136713.000000, Y = -16.036654我本来是在vector中村360组数据的,结果多了上面红色的部分,且都是有问题的数据。
1、通讯是一个大块
所以你不要怕浪费内存资源
要大量建立全局的结构变量来做索引
2、不要用控件来画图
控件是窗口,窗口是封装的,也不是针对你要的功能来设计的,所以捉襟见肘
直接就用内存DC来实现,该贴那里就贴那里,坐标换算也简单
3、显示与不显示仅仅是你那块内存DC用不用的问题
一个BOOL就解决问题,你老去操作那些窗口的新建与显示,你心里有底吗?
4、所有计算最好选择用线程去计算,结果都放全局规划的内存里
显示画图只简单的取数据来画,不要参与计算,也就是不要在显示的时候才来计算
5、如果是动态数据,就不要用模板,用循环链表
{
// TODO: Add your message handler code here and/or call default
CPublic::count++;
InvalidateRect (NULL, FALSE);
CDialog::OnTimer(nIDEvent);
}像 这种程序 一定 不能 InvalidateRect (NULL, FALSE);
必须 给个 无效 区域 , 而且 这个 区域 越小 越好。如 绘制的 数据 是在 x=100 处, 那么 无效区的 x 是 +-2 个 pixel
同理 yPaint时 要 检查 无效区, 不在 无效区内的 不要 画。 另外 什么叫:
CPublic::count++; ???