ScreenToClient()相同的POINT每次运行后值都不同?

解决方案 »

  1.   

    我也碰到过,而且很多时候都是这样的,如果你指定一个相对固定的窗口来用这个函数,可能将没有问题了,如:
    pMainFrame->ScreenToClient(YourPoint);
    即直接用:
    ScreenToClient(YourPoint);
    我就是这么解决的,你试一试吧
      

  2.   

    fengqinggao(风清高) 
    当然
    Client是针对你当前的窗口的
      

  3.   

    补充:呵呵,不好意思,上面的“即直接用:”应该写成“即不直接调用:”。其实这主要取决于你的当前的窗口是什么类型的,我碰到过,如果是View类型,使用该命令时,它会每次都望下一个菜单栏下边缘到屏幕顶部这么高的距离,而使用主框架类的这个函数对同样的point却没有这个问题————当然,也可能是我的程序的问题,呵呵,解决了就没有管它了
      

  4.   

    代码很简单:
    POINT pp;
    pp.x=100;
    pp.y=100;
    ScreenToClient(&pp);
    str.Format("%d,%d",pp.x,pp.y);
    pDC->TextOut(200,200,str);现在在家,代码在办公室,不知道写的有没有错误,呵呵
      

  5.   

    这是正常的吧。
    ScreenToClient是针对你的Clent的,在不同的情况下,你的Client的坐标不一样啊。
      

  6.   

    你的“每次”是什么意思?我还是不明白,这个代码,如果改变了调用窗体的位置(即Client的位置),当然ScreenToClient()的结果会变;否则,怎么会变?