一个对话框程式,在其上面放一些图片,用的是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);
我想在同一个大的图片位置范围内放几个小的图片,不过在不同的屏幕分辨率上会有不一样的坐标点,表现出来的现象就是当在这种分辨率的机器上,用鼠标点击不同的位置,图片很准确地跟随它而动,但如果程式运行在另一种分辨率的机器上,位置却乱了,如何能实现坐标变换呢,使得程式不会随着分辨率不一样而效果却一样?
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);
解决方案 »
- 如何能将CLIPS成功嵌入到VC++中?
- 这些##是作什么用
- 请问:有什么办法可以让一个 .Msi 和一个.exe 合并成一个 Msi安装文件呢
- 为什么显示不了
- 请问下各位已经工作的哥哥,姐姐,关于我学的知识水平能不能找到工作?
- 怎样取得本机DWORD类型的子网掩码和网关?
- 请问如何用VC++程序操作注册表(创建,修改,删除 主键和各类键值)
- 问题,<<Essential COM>>有关 表格驱动
- dll 如何打包
- wave.obj : error LNK2001: unresolved external symbol __imp__mmioAscend@12
- 请教一下如何从内存中载入BMP图像和光标
- 大家给点意见,关于软件加密问题!
左键的点击位置而移动.
在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;