将picture控件坐标 映射为逻辑坐标1000×1000
2009-10-13 15:35
204 查看
方法如下:
一): 获取picture控件窗口指针
CWnd *pwd=GetDlgItem(IDC_SHOW)
二): 获取picture控件的窗口坐标,将其窗口坐标信息保存在rect中
CRect rect;
pwd->GetWindowRect(&rect);
三): 将窗口坐标转换为对话框的客户区坐标
ScreenToClient(rect); //将rect中保存的点转换为对话框客户区坐标
四): 获得画图设备描述符
CDC *pdc=pwd->GetDC();
五): 设置设备坐标与逻辑坐标的映射模式
pdc->SetMapMode(MM_ANISOTROPIC);
六): 设置设备坐标范围
pdc->SetWindowExt(1000,1000);
七): 设置映射的逻辑坐标范围
pdc->SetviewportExt(rect.Width(), -rect.Height()); //逻辑坐标默认y是自上往下的 ,-rect.Height 表示现在逻辑坐标为自下往上
八): 设置逻辑坐标的原点
pdc->SetViewportOrg(0,rect.Heigh());
//其参数是相对于picture控件而言的, picture控件的左上角为(0,0)点, 因此(0,rect.Height)为pictuer控件的左下角点
因此,这句话的意思就是将picture控件的左下角作为逻辑坐标的原点。
这样,就将picture控件 映射为1000*1000的逻辑坐标了
其中,picture控件的左下角为逻辑坐标原点,x往右 y往上
pdc->SetPixel(x,y, RGB(0,0,0)); 中的x,y便是相对于逻辑坐标原点而言的,为逻辑坐标。
一): 获取picture控件窗口指针
CWnd *pwd=GetDlgItem(IDC_SHOW)
二): 获取picture控件的窗口坐标,将其窗口坐标信息保存在rect中
CRect rect;
pwd->GetWindowRect(&rect);
三): 将窗口坐标转换为对话框的客户区坐标
ScreenToClient(rect); //将rect中保存的点转换为对话框客户区坐标
四): 获得画图设备描述符
CDC *pdc=pwd->GetDC();
五): 设置设备坐标与逻辑坐标的映射模式
pdc->SetMapMode(MM_ANISOTROPIC);
六): 设置设备坐标范围
pdc->SetWindowExt(1000,1000);
七): 设置映射的逻辑坐标范围
pdc->SetviewportExt(rect.Width(), -rect.Height()); //逻辑坐标默认y是自上往下的 ,-rect.Height 表示现在逻辑坐标为自下往上
八): 设置逻辑坐标的原点
pdc->SetViewportOrg(0,rect.Heigh());
//其参数是相对于picture控件而言的, picture控件的左上角为(0,0)点, 因此(0,rect.Height)为pictuer控件的左下角点
因此,这句话的意思就是将picture控件的左下角作为逻辑坐标的原点。
这样,就将picture控件 映射为1000*1000的逻辑坐标了
其中,picture控件的左下角为逻辑坐标原点,x往右 y往上
pdc->SetPixel(x,y, RGB(0,0,0)); 中的x,y便是相对于逻辑坐标原点而言的,为逻辑坐标。
相关文章推荐
- 获取光标位置 并将其位置映射为上一博客中picture控件的逻辑坐标
- windows程序设计(五)---映射模式(转换设备坐标和逻辑坐标)
- 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000(求阶乘)
- GDI映射:设备坐标与逻辑坐标
- vb.net 教程 3-4 窗体编程 公共控件6 PictureBox & ProgressBar
- MFC中picture控件坐标转换
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC中picture控件坐标转换
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- 分页控件代码逻辑(JS版本&PHP版本)
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- MFC 获取picture控件的鼠标点击坐标位置的方法
- MFC 获取picture控件的鼠标点击坐标位置的方法(PreTranslateMessag)
- MFC 获取picture控件的鼠标点击坐标位置的方法
- 分页控件代码逻辑(JS版本&PHP版本)
- UVA12171_Sculpture_坐标旋转45度映射&&离散化
- windows程序设计(五)---映射模式(转换设备坐标和逻辑坐标)
- 获取鼠标在Picture控件中的坐标,并显示到对话框的状态栏中
- 黑马程序员—求1000!的结果末尾有多少个0 1000! = 1×2×3×4×5×...×999×1000
- 求1000!的结果中包含多少个0?注:1000! = 1×2×3×4×5×...×999×1000