Giter Site home page Giter Site logo

Comments (7)

nmgwddj avatar nmgwddj commented on August 15, 2024

@01haike 烦请使用标准 markdown 语法来描述多行代码 https://www.runoob.com/markdown/md-code.html,这样代码更加清晰。问题现象中描述出现该问题的直接现象,应该表现为何种状态,现在又是何种状态。如有必要请在重现步骤中描述清楚重现该问题的方法或示例代码。

from nim_duilib_framework.

01haike avatar 01haike commented on August 15, 2024

@nmgwddj 抱歉,之前我用过 ``` 包含代码时没有效果。然后一直也没去解决怎么包含代码。现在会了,谢谢。

from nim_duilib_framework.

nmgwddj avatar nmgwddj commented on August 15, 2024

你的窗口需要从 WindowEx 类派生实现 GetWindowId 方法。这样你的窗口就会被注册到窗口管理类中。

from nim_duilib_framework.

01haike avatar 01haike commented on August 15, 2024

你的窗口需要从 WindowEx 类派生实现 GetWindowId 方法。这样你的窗口就会被注册到窗口管理类中。

我有一个窗口,但是需要显示两次。

from nim_duilib_framework.

nmgwddj avatar nmgwddj commented on August 15, 2024

你的窗口需要从 WindowEx 类派生实现 GetWindowId 方法。这样你的窗口就会被注册到窗口管理类中。

我有一个窗口,但是需要显示两次。

可以从 WindowImplBase 派生。自己实现隐藏显示逻辑。

from nim_duilib_framework.

01haike avatar 01haike commented on August 15, 2024

你的窗口需要从 WindowEx 类派生实现 GetWindowId 方法。这样你的窗口就会被注册到窗口管理类中。

我有一个窗口,但是需要显示两次。

可以从 WindowImplBase 派生。自己实现隐藏显示逻辑。

	template<typename WindowType, typename... TInstanceParams>
	static WindowType* SingletonShow(const std::wstring& window_id, const TInstanceParams&... params)
	{
		WindowType *window = (WindowType*)(WindowsManager::GetInstance()->GetWindow(WindowType::kClassName, window_id));
		if (!window)
		{
			window = new WindowType(params...);
			window->Create(NULL, WindowType::kClassName, WS_OVERLAPPEDWINDOW & ~WS_MAXIMIZEBOX, 0);
			window->CenterWindow();
			window->ShowWindow();
		}
		else
		{
			window->ActiveWindow();
		}

		return window;
	}

那这个函数中的 window_id 参数就没有效果了啊,没有实际用途。

from nim_duilib_framework.

nmgwddj avatar nmgwddj commented on August 15, 2024

@01haike 代码稍加改造就可以实现您的需求,在 SingletonShow 时增加一些参数决定窗口是否可以重复创建,这个修改应该不是很难吧?
WindowEx 是一个辅助工具类,目的是更好的管理自己的窗口,没有把它放到 Duilib 核心代码中也是给大家提供一种管理窗口的方案,这已经偏向于业务场景了,不同的业务一份代码一定是无法完全兼容的,所以才把这个模块抽离出来,您可以根据自己业务随意修改。

from nim_duilib_framework.

Related Issues (20)

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.