2017-05-09 9 views
0

私は2つのウィンドウを同時に開き、window2が開いている間にwindow1 cantイベントを処理する例を作成しました。私は現在のウィンドウの色をilustrateに変更しました(マウスを動かせばwindow1が開いていて、green2はより緑と緑になります)。しかし、ウィンドウ2が開いている間にウィンドウ1がイベントを処理しなくても、ウィンドウ1の位置は変更できません。私はそれをすることができないようにしたい。SFMLフレームワークを開発する

#include <SFML/OpenGL.hpp> 
#include <SFML/Window.hpp> 
#include <SFML/Graphics.hpp> 

using namespace std; 

sf::Event event; 

int main() 
{ 
    sf::RenderWindow window1(sf::VideoMode(600, 600), "Window1"); 
    sf::RenderWindow window2(sf::VideoMode(300, 300), "Window2"); 

    int r=0,g=0; 
    while (window1.isOpen()) 
    { 

     if(window2.isOpen()==false) 
      while (window1.pollEvent(event)) 
      { 
       if (event.type == sf::Event::Closed) 
        window1.close(); 
       r=(r+1)%255; 
      } 
     else 
     { 
      while (window2.pollEvent(event)) 
      { 
       if (event.type == sf::Event::Closed) 
        window2.close(); 
       g=(g+1)%255; 
      } 
     } 
     window1.clear(sf::Color(r,0,0)); 
     window1.display(); 


     window2.clear(sf::Color(0,g,0)); 
     window2.display(); 
    } 

    return 0; 
} 

どうすればよいですか?

答えて

0

(私はそれがプラットフォーム固有のコードを使用して可能です期待が)SFMLでの直接の機能はこのためにありませんが、回避策がいくつかあります:SFへ

  1. 変更ウィンドウスタイルを::スタイル::なし。これはすばやく簡単ですが、必要のないタイトルバーとウィンドウ枠を削除する効果があります。
  2. 各レンダリングの位置を手動で設定するか、または位置の変更を確認して反転させることで、ウィンドウの位置を強制的に強制します。
関連する問題