TSharedPtr< SWindow > LoginWindow = SNew(SWindow) .Title(LOCTEXT("FcLoginWindow", "登录")) .ClientSize(FVector2D(1000.f, 700.f)) .SupportsMaximize(true) .SupportsMinimize(true); // 是UEditorUtilityWidget if (Blueprint->GeneratedClass->IsChildOf(UEditorUtilityWidget::StaticClass())) { /*UE_LOG(LogTemp, Display, TEXT("开始设置登录窗口内容"));*/ // Get world for editor UWorld* World = GEditor->GetEditorWorldContext().World(); const TSubclassOf<UEditorUtilityWidget> WidgetClass = Blueprint->GeneratedClass; UEditorUtilityWidget* CreatedUMGWidget = CreateWidget<UEditorUtilityWidget>(World, WidgetClass); LoginWindow->SetContent(CreatedUMGWidget->TakeWidget()); // 窗口在最前面,可以置后 FSlateApplication::Get().AddWindowAsNativeChild(LoginWindow.ToSharedRef(), FGlobalTabmanager::Get()->GetRootWindow().ToSharedRef()); }
时间: 2024-03-31 16:32:23 浏览: 19
这段代码是用于在 Unreal Engine 中创建一个登录窗口,并将一个 UMG(Unreal Motion Graphics)Widget 添加到窗口中作为内容。如果传入的 Blueprint 对象是一个 UEditorUtilityWidget 的子类,就会从编辑器中获取当前的世界,创建一个指定类的 UMG Widget 对象,并将其设置为窗口的内容。最后,通过调用 FSlateApplication::Get().AddWindowAsNativeChild() 将窗口添加到 Slate 应用程序的根窗口中,并显示在最前面。
相关问题
ue 获取swindow的窗口句柄
获取窗口句柄可以使用UE4中的函数GetActiveWindow(),该函数返回当前激活窗口的句柄。如果需要获取其他窗口的句柄,可以使用FindWindow()函数来查找窗口并获取其句柄。具体实现可以参考以下代码:
```c++
// 获取当前激活窗口的句柄
HWND hwnd = GetActiveWindow();
// 查找窗口并获取其句柄
HWND hwnd2 = FindWindow(NULL, TEXT("窗口标题"));
// 验证窗口句柄是否有效
if (hwnd && IsWindow(hwnd))
{
// 句柄有效,可以进行操作
}
else
{
// 句柄无效,操作失败
}
```
注意,如果需要在UE4中使用Win32 API函数,需要包含Windows.h头文件。
ue获取当前使用的窗口
在UE中获取当前使用的窗口可以使用以下代码:
```cpp
TSharedPtr<SWindow> CurrentNativeWindow = FSlateApplication::Get().GetActiveTopLevelWindow();
```
这将返回一个指向当前活动窗口的共享指针,可以使用它来访问窗口的各种属性和方法。