根据鼠标在对话框上的位置来显示图片的问题,在不同的分辨率会得到不同的值和位置?

xhwu3721 2007-04-12 06:40:05
一个对话框程式,在其上面放一些图片,用的是Picture控件.
我想在同一个大的图片位置范围内放几个小的图片,不过在不同的屏幕分辨率上会有不一样的坐标点,表现出来的现象就是当在这种分辨率的机器上,用鼠标点击不同的位置,图片很准确地跟随它而动,但如果程式运行在另一种分辨率的机器上,位置却乱了,如何能实现坐标变换呢,使得程式不会随着分辨率不一样而效果却一样?
void CConfigDlg::OnLButtonDown(UINT nFlags, CPoint point)
{
// CRect tRect;
// CWnd* pWnd;
// pWnd = CWnd::FromHandle(::GetDlgItem(GetSafeHwnd
//(),IDC_BKGROUND));
// pWnd->GetClientRect(&tRect);


CRect r;
CRect rBasePoint;
rBasePoint.top=60;
rBasePoint.bottom=85;
rBasePoint.left=575;
rBasePoint.right=600;

switch (ThemeItem[ThemeDataItem])
{
case item_music_player:
//m_MusicPlayerPic.GetWindowRect(&r);
r.top=rBasePoint.top+m_Theme.ImgFile[item_music_player].y;
r.bottom=rBasePoint.bottom+m_Theme.ImgFile[item_music_player].y;
r.left=rBasePoint.left+m_Theme.ImgFile[item_music_player].x;
r.right=rBasePoint.right+m_Theme.ImgFile[item_music_player].x;
ScreenToClient(&r);
m_MusicPlayerPic.MoveWindow(r);
...全文
202 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
xhwu3721 2007-04-13
  • 打赏
  • 举报
回复
是这个意思,就是通过鼠标在对话框上所移至的位置,来调整CPicture控件的位置,使它随着鼠标
左键的点击位置而移动.
在timer中得到鼠标的位置.
void CThemeConfigDlg::OnTimer(UINT nIDEvent)
{
int BaseX = 389;
int BaseY = 19;
POINT point;
GetCursorPos(&point);
ScreenToClient(&point);
int x=point.x;
int y=point.y;
char bufX[100],bufY[100];
if((x>=389)&&(y>=19)&&(y<=339)&&(x<=629))
{
x=x-BaseX;
y=y-BaseY;
sprintf(bufX,"%d",x);
sprintf(bufY,"%d",y);

switch (ThemeItem[ThemeDataItem])
{
case item_music_player:
sMusicPlayerX=CString(bufX);
sMusicPlayerY=CString(bufY);
m_Theme.ImgFile[item_music_player].x=x;
m_Theme.ImgFile[item_music_player].y=y;
菜牛 2007-04-12
  • 打赏
  • 举报
回复
没看明白你的代码,如果都是按照像素来处理坐标,和屏幕分辨率本来就没有关系。

16,472

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Web++
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

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