救命啊 关于CToolTip的问题, 在线等...

kalltt 2005-05-27 02:48:27
我在一个对话框上绘制一个地图, 地图的绘制是在对话框的OnPaint函数中进行的
这一切都没有问题
后来我想实现这样一个功能: 当鼠标在地图上移动的时候,鼠标下方显示一个ToolTip,显示当前地图中的坐标值. 所以我增加了一个CToolTip对象, 并在鼠标移动的消息内更新当前地图的坐标值.

Tooltip的显示没有问题,但当tooltip移动的时候,把对话框上绘制的地图都擦除掉了.

请问这个问题该如何解决阿?
...全文
208 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
kalltt 2005-05-27
  • 打赏
  • 举报
回复
自己UP
kalltt 2005-05-27
  • 打赏
  • 举报
回复
总算找到原因了
由于我在绘图时OnPaint函数中进行了一系列的坐标变换,
为了将OnMouseMove函数中当前的鼠标位置转换到和我的地图一致的坐标, 所以在OnMouseMove函数中我加了 CPaintDC dc(this);对象, 就是因为加了这样一个对象,所以导致了前面的情况

原因找到了, 请问有什么解决方法吗?
如果不在OnMouseMove函数中使用CPaintDC对象的话, 坐标点该如何装换呢
下面是我的坐标的转换代码:
dc.SetMapMode(MM_ISOTROPIC); // 设置模式
dc.SetViewportOrg(480,10); // 设置图像的起始点

// 以下一段代码使得图像按照原来的比例大小显示
// m_dwBaseLength所对应的长度为300 以此为基准 要放大缩小图像,请改变m_dwBaseLength
m_VWidth = m_dwMaxViewArea * m_pMapData->m_dwWidth / m_dwBaseLength;
m_VHeight = m_dwMaxViewArea * m_pMapData->m_dwHeight / m_dwBaseLength;

dc.SetWindowExt(CSize(m_pMapData->m_dwWidth,m_pMapData->m_dwHeight)); // 设置地图的大小
dc.SetViewportExt(CSize(m_VWidth,m_VHeight)); // 取地图中长宽的最大值==>计算视图的长宽*(比例因子),并设置。
//dc.SetViewportOrg(m_dwViewOrgX,m_dwViewOrgY); // 设置图像的起始点

Atomictry 2005-05-27
  • 打赏
  • 举报
回复
我在OnPaint中画了图,然后通过鼠标位置来显示tip,没有你所说的现象。
代码下载链接: https://pan.quark.cn/s/90052d681b2f 本书系统地阐述了利用C语言进行程序开发的各种方法与技巧,全书总共分为十二个章节,涵盖了从基础到高级的多个方面,包括但不限于基础知识、指针运用、数据结构、算法设计、数学运算、文件处理、库函数应用、图形图像生成、系统调用、加密与安全机制、游戏开发以及综合案例等。整个书籍精心设计了三百个实例,每个实例都着重展示了其在实际应用中的价值。本书既适合作为C语言编程的入门教材供初学者研习,也能够为程序开发者、相关专业培训机构的教师和学生提供参考和借鉴。第一章聚焦于基础知识,详细介绍了进制转换、条件判断、多重循环图形打印、循环的数学应用、数组操作、字符与字符串处理、函数使用、趣味计算、宏定义与位运算等内容。第二章深入探讨了指针的相关知识,包括指针变量、指针与数组的关系、指针与函数的交互、字符串与指针的结合以及指向指针的指针运用。第三章着重于数据结构的学习,涵盖了结构体、链表、栈与队列、串与广义表、二叉树以及图及其应用等多个重要主题。第四章详细介绍了算法设计,涉及简单问题求解算法、排序算法、查找算法、数学定理与猜想以及逻辑推理与判断等内容。第五章围绕数学应用展开,讨论了素数问题、整数趣题、数学问题求解、矩阵运算以及生活中的数学实例。第六章专门讲解文件操作,包括了文件读写操作、文件内容处理、文件的创建与查找删除、以及文件相关操作等。第七章介绍了库函数的调用,涵盖了时间转换与操作函数、数学函数、字符串与字符函数以及其他各类函数的使用方法。第八章则聚焦于图形图像的处理,详细介绍了基本图形的绘制、色彩填充与使用技巧等。

15,976

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧