根据鼠标在对话框上的位置来显示图片的问题,在不同的分辨率会得到不同的值和位置?
一个对话框程式,在其上面放一些图片,用的是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);