首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >开发SFML框架

开发SFML框架
EN

Stack Overflow用户
提问于 2017-05-09 21:57:15
回答 1查看 87关注 0票数 0

我创建了一个示例,在这个示例中,我同时打开了两个窗口,当window2打开时,window1无法处理事件。我更改了当前窗口的颜色,以说明其工作正常(当window1打开时,如果我移动鼠标,window2会变得越来越绿)。但是即使在窗口2打开的时候window1不能处理事件,我仍然不能改变window1的位置。我希望无法做到这一点。

代码语言:javascript
复制
#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;
}

我该怎么做?

EN

回答 1

Stack Overflow用户

发布于 2017-05-09 22:51:35

  1. 将窗口样式更改为sf:: style ::None。这样做既快速又简单,但会删除标题栏和窗口边框,这可能不是您想要的效果。
  2. Brute会强制窗口位置,方法是手动设置每次呈现时的位置,或者检查位置是否发生更改并将其反转。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/43871859

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档