2015-04-21 81 views
0

我正在用SFML構建一個基本的文本編輯器。爲此,我需要使用組合鍵CTRL + S保存。如何使用修飾鍵組合?

當我按下CTRL +小號目前的解決方案節省,並在我的編輯器產生一個 's'。這個額外的'是不是想要的。

這是我目前擁有的代碼:

//Main loop: 

if (event.type == sf::Event::KeyPressed) 
    { 
     if (event.key.code == sf::Keyboard::S 
      && event.key.control) 
     { 
      cout << "testing" << endl; 
     } 
    } 
    else if (event.type == sf::Event::TextEntered) 
    { 
    } 

換句話說:我想TextEntered進行正常工作。但如果我按CTRL + S,它將禁用TextEntered並執行保存。我該怎麼做呢?

回答

2

只需在TextEntered的處理程序內執行實時密鑰檢查。例如

else if (event.type == sf::Event::TextEntered) 
{ 
    if (!sf::Keyboard::isKeyPressed(sf::Keyboard::LControl) && 
     !sf::Keyboard::isKeyPressed(sf::Keyboard::RControl)) 
    { 
     // handle text event 
    } 
    else 
    { 
     // do something else, or nothing 
    } 
}