好简单的问题,但是我有点迷惑,都不好意思发出来的 ~

surstar 2005-10-10 08:27:49
http://bbs.bjpeu.edu.cn/cupbbs/accessory/19/f6750e96-5f2a-4f2b-b466-fb7d934ffafe.jpg

你所见到的图片中3个方框,分别是
  黑色代表演示器的屏幕,
  红色代表我的程序的windows窗体,
  紫色代表的是程序的客户区。
  兰色的A点要程序中要用到的:

  先看下面的部分片段代码(SDK)

#include <windows.h>
在 窗体过程 中

  POINT pt1,pt2;
case WM_CREATE:
  SetCapture(hwnd);
  break;
case WM_LBUTTONDOWN:
pt1.x=LOWORD(lParam);
pt1.y=HIWORD(lParam);
ClientToScreen(hwnd,&pt1); //在此处设断点调试
  break;



  在调式时,我在上图的A点点了一下鼠标

  我想问的是,在运行到断点前pt1,和运行到断点后pt1后的值, 说一下范围,大楷是什么值!


  因为我发现我程序没有按照我所想的运行,我想是大家是怎么看这段代码的!

  Thanx in Advance!

PS:  模式是默认的 MM_TEXT ,其他的都是默认
...全文
100 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
surstar 2005-10-11
  • 打赏
  • 举报
回复
我想通了,
现象是前后都是正的, 按照书上的应该是前负,后正,

上面出现这样的原因是因为宏 LOWORD() 和HIWORD() 的原因

我断点时的数据是把有符号的 数当做了无符号数了,

djfu 2005-10-11
  • 打赏
  • 举报
回复
ScreenToClient(...); 如何?
surstar 2005-10-11
  • 打赏
  • 举报
回复
断点前后都是正的

并且正得很大,~  我都想不通中间到底是怎么在转换了~ 所以问一问~
surstar 2005-10-11
  • 打赏
  • 举报
回复
我很郁闷,无论我怎么弄,都是 断点前后都是正的
菜牛 2005-10-10
  • 打赏
  • 举报
回复
首先,鼠标消息中的坐标和映射模式没有关系,总是设备坐标。
其次,建议你在WM_LBUTTONDOWN中SetCapture(),在WM_LBUTTONUP中ReleaseCapture(),可能更好看到你的结果,当然这段代码移到WM_LBUTTONUP消息中去。

结果应该是断点前为负值,断点后为正值。
surstar 2005-10-10
  • 打赏
  • 举报
回复
但是我有这一句呀

SetCapture(hwnd); 我捕获了鼠标的
windcsn 2005-10-10
  • 打赏
  • 举报
回复
ptl首先得到的应该是屏幕坐标
你使用ClientToScreen后就不好说了,实际上你这样做没有意义

16,472

社区成员

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

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

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