Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/c/61.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C++ 放大率低于125%默认Win API(在101-124%之间)_C++_C_Windows_Winapi_Magnification Api - Fatal编程技术网

C++ 放大率低于125%默认Win API(在101-124%之间)

C++ 放大率低于125%默认Win API(在101-124%之间),c++,c,windows,winapi,magnification-api,C++,C,Windows,Winapi,Magnification Api,我正在研究windows放大api,我一直在玩弄它,但我对默认放大率有一个问题,windows只允许您以25%的最小值递增。我是否有可能一次增加1-5%呢?也许随着鼠标的滚动而增加百分之一 Windows最低25%默认值][1] 提前感谢您的帮助 int xDlg = (int)((float)GetSystemMetrics(SM_CXSCREEN) * (1.0 - (1.0 / magnificationFactor)) / 2.0); int yDlg = (int)((

我正在研究windows放大api,我一直在玩弄它,但我对默认放大率有一个问题,windows只允许您以25%的最小值递增。我是否有可能一次增加1-5%呢?也许随着鼠标的滚动而增加百分之一

Windows最低25%默认值][1]

提前感谢您的帮助

    int xDlg = (int)((float)GetSystemMetrics(SM_CXSCREEN) * (1.0 - (1.0 / magnificationFactor)) / 2.0);
    int yDlg = (int)((float)GetSystemMetrics(SM_CYSCREEN) * (1.0 - (1.0 / magnificationFactor)) / 2.0);

    BOOL successSet = MagSetFullscreenTransform(magnificationFactor, xDlg, yDlg);
    if (successSet)
    {
        BOOL fInputTransformEnabled;
        RECT rcInputTransformSource;
        RECT rcInputTransformDest;

        if (MagGetInputTransform(&fInputTransformEnabled, &rcInputTransformSource, &rcInputTransformDest))
        {
            if (fInputTransformEnabled)
            {
                SetInputTransform(hwndDlg, fInputTransformEnabled);
            }                
        }
    }

successSet==false;当它不是1.1时,任何更低的东西都会失败,我意识到1.1=125%缩放。

在放大API中没有这样的限制。您在屏幕上看到的限制是由UI开发人员选择的。

两者都有,并采用
float
输入参数。对于分辨率没有限制,只要它至少
1.0f
且不大于上限。

非常感谢您的回复。是的,我知道,但默认为25%。我通过了浮点值,但如果我通过1.05,例如。什么也没发生,但当我通过1.1时,它会缩放到125%,我需要比这个小的数字。int xDlg=(int)((浮点)GetSystemMetrics(SM_CXSCREEN)*(1.0-(1.0/放大系数))/2.0);int yDlg=(int)((float)GetSystemMetrics(SM_CYSCREEN)*(1.0-(1.0/放大系数))/2.0);BOOL fSuccess=MagSetFullscreenTransform(放大系数,xDlg,yDlg);if(fsucces){Micheal非常感谢您的回复。是的,我知道,但它默认为25%。我通过了浮点值,但如果我通过了1.05,例如。什么都没有发生,但当我通过1.1时,它会缩放到125%缩放,我需要小于该值的数字。int xDlg=(int)(float)GetSystemMetrics(SM_CXSCREEN)*(1.0-(1.0/放大系数)/2.0;int-yDlg=(int)((浮点)GetSystemMetrics(SM_CYSCREEN)*(1.0-(1.0/放大系数))/2.0);BOOL-fSuccess=MagSetFullscreenTransform(放大系数,xDlg,yDlg);if(fSuccess){如果你有一些代码可以显示,也许我们可以帮你。嗨,Micheal,我把代码添加到问题中,谢谢你的回答。