为什么event.mouseWheelScroll.delta总是使用SFML返回0?

时间:2017-11-12 16:26:14

标签: c++ sfml scrollwheel

我正在测试SFML库select ca.cnsmr_accnt_id, cab.cnsmr_accnt_bal_amnt, [Balance Short Name] = 'LOAN_AMOUNT' --LOAN_AMOUNT from cnsmr_accnt ca inner join cnsmr_accnt_bal cab on ca.cnsmr_accnt_id = cab.cnsmr_accnt_id inner join bal_nm b on cab.bal_nm_id = b.bal_nm_id and b.bal_shrt_nm='OriBal' and b.bal_nm_actv_flg ='Y' UNION ALL select ca.cnsmr_accnt_id, cab.cnsmr_accnt_bal_amnt, [Balance Short Name] = 'BOM_POS' --BOM_POS from cnsmr_accnt ca inner join cnsmr_accnt_bal cab on ca.cnsmr_accnt_id = cab.cnsmr_accnt_id inner join bal_nm b on cab.bal_nm_id = b.bal_nm_id and b.bal_shrt_nm='CurBal' and b.bal_nm_actv_flg ='Y' UNION ALL select ca.cnsmr_accnt_id, cab.cnsmr_accnt_bal_amnt, [Balance Short Name] = 'CURRENT_POS' --CURRENT_POS from cnsmr_accnt ca inner join cnsmr_accnt_bal cab on ca.cnsmr_accnt_id = cab.cnsmr_accnt_id inner join bal_nm b on cab.bal_nm_id = b.bal_nm_id and b.bal_shrt_nm='CurBal' and b.bal_nm_actv_flg ='Y' UNION ALL select ca.cnsmr_accnt_id, cab.cnsmr_accnt_bal_amnt, [Balance Short Name] = 'Total_Amount_Paid_till_date' --Total Amount Paid till date from cnsmr_accnt ca inner join cnsmr_accnt_bal cab on ca.cnsmr_accnt_id = cab.cnsmr_accnt_id inner join bal_nm b on cab.bal_nm_id = b.bal_nm_id and b.bal_shrt_nm='TotPay' and b.bal_nm_actv_flg ='Y' 中的功能,但我总是得到0的返回值。为什么会这样?

我使用的代码如下,请注意,在程序的第一行代码中,我初始化了变量mouseWheelScroll.delta

sf::Event event;

SFML库是需要一个窗口还是它可以使用控制台? (我只是问,因为我正在创建一个控制台应用程序)

2 个答案:

答案 0 :(得分:0)

我几乎可以肯定你已经忘记了事件循环中的某些内容。我已经尝试过这个片段并且工作正常

#include <iostream>
#include <SFML\Graphics.hpp>

int main(){
    sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML");

    while (v.isOpen()){
        sf::Event event;
        while (v.pollEvent(event)){
            if (event.type == sf::Event::Closed)
                v.close();
            else if (event.type == sf::Event::MouseWheelScrolled){
                std::cout << "Wheel: " << event.mouseWheelScroll.delta << std::endl;
            }
        }
        v.clear();
        v.display();
    }
    return 0;
}

请尝试并比较你做错了什么(然后与我们分享)

回答你的第二个问题,我创建了一个渲染窗口,但我认为你的问题更多的是关于项目是否可以作为控制台应用程序,事实上,这就是它,如果你尝试它,它会显示控制台和窗口。

答案 1 :(得分:0)

感谢大家的帮助,事实证明我遇到了行sf::RenderWindow v(sf::VideoMode::getDesktopMode(), "SFML");的问题,这是因为VC ++插件没有安装,这就是为什么我总是得到一个&#34;找不到&#34; winmm.lib&#34;&#34;错误。

其他人提供的这两个代码示例都工作,只是我...对不起,但非常感谢!