我写了个小程序,根据读入的图片大小来创建一个窗口居中显示,图片太大会进行缩放,现在我可以根据图片的大小和屏幕的分辨率来产生,缩放并居中一个窗口,但是我用缩放后的窗口大小(整个,和getwindowrect()得到的值一样),y方向上减去(2*边框(GetSystemMetrics(SM_CYBORDER))+标题栏高度(GetSystemMetrics(SM_CYCAPTION)))并不等于getclientrect().height的值呢?差了10,不知道这是怎么回事呢?还有什么没有减去吗?我产生的窗口没有菜单栏啊

解决方案 »

  1.   

    GetSystemMetrics(SM_CYBORDER)有多少?
      

  2.   

    用这两个值替换GetSystemMetrics(SM_CYBORDER)试一试
    SM_CYFIXEDFRAME
    SM_CYSIZEFRAME 
      

  3.   

    y-(GetSystemMetrics(SM_CYCAPTION)+GetSystemMetrics(SM_CYBORDER));
      

  4.   

    GetSystemMetrics(SM_CYBORDER)=1我现在就是用的y-(GetSystemMetrics(SM_CYCAPTION)+2*GetSystemMetrics(SM_CYBORDER));都大了
      

  5.   

    用GetClientRect  替换 GetWindowRect试试看
      

  6.   

    用了SM_CYSIZEFRAME+SM_CYBORDER就好了,现在还有个问题是我用了skinmagic,它的某些皮肤增加了边框,我怎么得到增加的边框大小呢?