用VC++的mfc基于对话框变画图程序,求大神助攻

edenluck 2016-04-28 08:35:24
想用vc++的MFC基于对话框画一个表示800米到1250米的井的程序,还要能够使用滚动条上下拖动,还有坐标的对应转换。求vc++方面的大神指点小弟不胜感谢,我真是不知道从哪下手啊,求指点
...全文
230 12 打赏 收藏 转发到动态 举报
写回复
用AI写文章
12 条回复
切换为时间正序
请发表友善的回复…
发表回复
shiter 2016-05-06
  • 打赏
  • 举报
回复
搞清楚坐标的起始点,在纸上画一画,按照转换公式写代码
素事 2016-05-05
  • 打赏
  • 举报
回复
引用 4 楼 edenluck 的回复:
[quote=引用 2 楼 boylafong 的回复:] 就是图形的上下拖动啊 只是由滚动条来实现
还有屏幕坐标和实际坐标的对应我都不会,好难[/quote] 你要学会的是分解这个过程,实际坐标很好理解,就是图像对应像素点。屏幕坐标,你首先要学会怎么获取,这涉及的是win api,搜索这个还是比较简单的,然后要注意中间还有一个是客户端坐标,控件坐标,因为你的mfc程序是在屏幕中的相对位置的,而控件又是在你的mfc程序中的相对位置,你的图像就在控件中。把这些分解下来一个个去对应就好了,过程比较麻烦,但做完理解了就简单了。 下面这段代码你参考一下:

OnMouseMove(UINT nFlags, CPoint point)
{
    //鼠标在图像内
    CRect r;
    GetDlgItem(IDC_PIC)->GetWindowRect(&r);
    (GetDlgItem(IDC_PIC)->GetParent())->ScreenToClient(r);
    if(!r.PtInRect(point))
        return;
}
洗洗睡去 2016-04-30
  • 打赏
  • 举报
回复
引用 8 楼 edenluck 的回复:
[quote=引用 7 楼 sunnyloves 的回复:] 给你一个我写的在SDI里画图的过程,对话框原理也一样http://blog.csdn.net/sunnyloves/article/details/49330465
引用 7 楼 sunnyloves 的回复:
给你一个我写的在SDI里画图的过程,对话框原理也一样http://blog.csdn.net/sunnyloves/article/details/49330465
我是新手,现在就想知道怎样把一个800到1250米深的井宽度无所谓,对应显示在1到300像素的客户区,并且能用滚轮上下拉动显示出来整个情况,谢谢了[/quote] 我文章里写的很清楚啊 要先计算初始缩放比例,才能把任意长度对应到屏幕内限定区域,
boylafong 2016-04-29
  • 打赏
  • 举报
回复
就是图形的上下拖动啊 只是由滚动条来实现
edenluck 2016-04-29
  • 打赏
  • 举报
回复
求帮助啊!!!
edenluck 2016-04-29
  • 打赏
  • 举报
回复
引用 6 楼 zhao4zhong1 的回复:
Coordinate Space and Transformation Functions The following functions are used with coordinate spaces and transformations. ClientToScreen CombineTransform DPtoLP GetCurrentPositionEx GetGraphicsMode GetMapMode GetViewportExtEx GetViewportOrgEx GetWindowExtEx GetWindowOrgEx GetWorldTransform LPtoDP MapWindowPoints ModifyWorldTransform OffsetViewportOrgEx OffsetWindowOrgEx ScaleViewportExtEx ScaleWindowExtEx ScreenToClient SetGraphicsMode SetMapMode SetViewportExtEx SetViewportOrgEx SetWindowExtEx SetWindowOrgEx SetWorldTransform
我是新手,能不能举个简单的例子,说明一下怎么讲实际的长度对应到屏幕上啊,谢谢了
edenluck 2016-04-29
  • 打赏
  • 举报
回复
引用 7 楼 sunnyloves 的回复:
给你一个我写的在SDI里画图的过程,对话框原理也一样http://blog.csdn.net/sunnyloves/article/details/49330465
引用 7 楼 sunnyloves 的回复:
给你一个我写的在SDI里画图的过程,对话框原理也一样http://blog.csdn.net/sunnyloves/article/details/49330465
我是新手,现在就想知道怎样把一个800到1250米深的井宽度无所谓,对应显示在1到300像素的客户区,并且能用滚轮上下拉动显示出来整个情况,谢谢了
洗洗睡去 2016-04-29
  • 打赏
  • 举报
回复
给你一个我写的在SDI里画图的过程,对话框原理也一样http://blog.csdn.net/sunnyloves/article/details/49330465
赵4老师 2016-04-29
  • 打赏
  • 举报
回复
Coordinate Space and Transformation Functions The following functions are used with coordinate spaces and transformations. ClientToScreen CombineTransform DPtoLP GetCurrentPositionEx GetGraphicsMode GetMapMode GetViewportExtEx GetViewportOrgEx GetWindowExtEx GetWindowOrgEx GetWorldTransform LPtoDP MapWindowPoints ModifyWorldTransform OffsetViewportOrgEx OffsetWindowOrgEx ScaleViewportExtEx ScaleWindowExtEx ScreenToClient SetGraphicsMode SetMapMode SetViewportExtEx SetViewportOrgEx SetWindowExtEx SetWindowOrgEx SetWorldTransform
edenluck 2016-04-29
  • 打赏
  • 举报
回复
引用 3 楼 zhao4zhong1 的回复:
参考MSDN里面自带的例子SHOWDIB
要将实际的尺寸按一定比例对应到屏幕上,然后获取分辨率,计算出英寸然后得出点数。不知道该怎末做啊
edenluck 2016-04-29
  • 打赏
  • 举报
回复
引用 2 楼 boylafong 的回复:
就是图形的上下拖动啊 只是由滚动条来实现
还有屏幕坐标和实际坐标的对应我都不会,好难
赵4老师 2016-04-29
  • 打赏
  • 举报
回复
参考MSDN里面自带的例子SHOWDIB

19,468

社区成员

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

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