openharmony 鸿蒙 capi-oh-window-h

2025-06-12 浏览 (1)

oh_window.h

概述

定义窗口管理的相关接口,主要用于设置和获取指定窗口的属性,以及设置指定窗口的状态栏样式、导航栏样式。

引用文件: <window_manager/oh_window.h>

库: libnative_window_manager.so

系统能力: SystemCapability.Window.SessionManager

起始版本: 15

相关模块: WindowManager

汇总

函数

名称描述
int32_t OH_WindowManager_SetWindowStatusBarEnabled(int32_t windowId, bool enabled, bool enableAnimation)设置指定窗口是否显示状态栏。
int32_t OH_WindowManager_SetWindowStatusBarColor(int32_t windowId, int32_t color)设置指定窗口的状态栏内容颜色。
int32_t OH_WindowManager_SetWindowNavigationBarEnabled(int32_t windowId, bool enabled, bool enableAnimation)设置指定窗口是否显示导航栏。
int32_t OH_WindowManager_GetWindowAvoidArea(int32_t windowId, WindowManager_AvoidAreaType type, WindowManager_AvoidArea* avoidArea)获取指定窗口的避让区域。
WindowManager_ErrorCode OH_WindowManager_IsWindowShown(int32_t windowId, bool* isShow)判断指定窗口是否显示。
WindowManager_ErrorCode OH_WindowManager_ShowWindow(int32_t windowId)显示指定窗口。
int32_t OH_WindowManager_SetWindowTouchable(int32_t windowId, bool isTouchable)设置指定窗口是否可触。
int32_t OH_WindowManager_SetWindowFocusable(int32_t windowId, bool isFocusable)设置指定窗口是否可获焦。
int32_t OH_WindowManager_SetWindowBackgroundColor(int32_t windowId, const char* color)设置指定窗口背景颜色。
int32_t OH_WindowManager_SetWindowBrightness(int32_t windowId, float brightness)设置指定窗口的屏幕亮度。
int32_t OH_WindowManager_SetWindowKeepScreenOn(int32_t windowId, bool isKeepScreenOn)设置指定窗口是否开启屏幕常亮。
int32_t OH_WindowManager_SetWindowPrivacyMode(int32_t windowId, bool isPrivacy)设置指定窗口是否开启隐私模式。
int32_t OH_WindowManager_GetWindowProperties(int32_t windowId, WindowManager_WindowProperties* windowProperties)获取指定窗口属性。
int32_t OH_WindowManager_Snapshot(int32_t windowId, OH_PixelmapNative* pixelMap)获取指定窗口截图。
int32_t OH_WindowManager_GetAllWindowLayoutInfoList(int64_t displayId,WindowManager_Rect** windowLayoutInfoList, size_t* windowLayoutInfoSize)获取指定屏幕上可见的窗口布局信息数组,按当前窗口层级排列,层级最高的对应数组下标为0。
void OH_WindowManager_ReleaseAllWindowLayoutInfoList(WindowManager_Rect* windowLayoutInfoList)释放窗口布局信息数组占用的内存。
int32_t OH_WindowManager_InjectTouchEvent(int32_t windowId, Input_TouchEvent* touchEvent)将多模触摸事件注入给目标窗口,该注入不会触发窗口焦点和层级变化,直接发送给ArkUI。

函数说明

OH_WindowManager_SetWindowStatusBarEnabled()

int32_t OH_WindowManager_SetWindowStatusBarEnabled(int32_t windowId, bool enabled, bool enableAnimation)

描述

设置指定窗口是否显示状态栏。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool enabled设置状态栏是否显示。true表示设置状态栏显示,false表示设置状态栏隐藏。
bool enableAnimation设置是否开启状态栏的显隐动画。true表示开启状态栏的显隐动画,false表示关闭状态栏的显隐动画。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowStatusBarColor()

int32_t OH_WindowManager_SetWindowStatusBarColor(int32_t windowId, int32_t color)

描述

设置指定窗口的状态栏内容颜色。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
int32_t color要设置的颜色值,格式为ARGB。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowNavigationBarEnabled()

int32_t OH_WindowManager_SetWindowNavigationBarEnabled(int32_t windowId, bool enabled, bool enableAnimation)

描述

设置指定窗口是否显示导航栏。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool enabled设置导航栏是否显示。true表示设置导航栏显示,false表示设置导航栏隐藏。
bool enableAnimation设置是否开启导航栏的显隐动画。true表示开启导航栏的显隐动画,false表示关闭导航栏的显隐动画。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_GetWindowAvoidArea()

int32_t OH_WindowManager_GetWindowAvoidArea(int32_t windowId, WindowManager_AvoidAreaType type, WindowManager_AvoidArea* avoidArea)

描述

获取指定窗口的避让区域。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
WindowManager_AvoidAreaType type避让区域的类型。
WindowManager_AvoidArea* avoidArea返回指向指定窗口的避让区域的指针,作为出参使用。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功,返回指向对应窗口id的避让区域的指针。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_IsWindowShown()

WindowManager_ErrorCode OH_WindowManager_IsWindowShown(int32_t windowId, bool* isShow)

描述

判断指定窗口是否显示。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool* isShow返回指定窗口是否显示的结果。true表示指定窗口显示,false表示指定窗口不显示,作为出参使用。

返回:

类型说明
WindowManager_ErrorCode返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。

OH_WindowManager_ShowWindow()

WindowManager_ErrorCode OH_WindowManager_ShowWindow(int32_t windowId)

描述

显示指定窗口。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。

返回:

类型说明
WindowManager_ErrorCode返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowTouchable()

int32_t OH_WindowManager_SetWindowTouchable(int32_t windowId, bool isTouchable)

描述

设置指定窗口是否可触。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool isTouchable窗口是否可触。true表示窗口可触,false表示窗口不可触。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowFocusable()

int32_t OH_WindowManager_SetWindowFocusable(int32_t windowId, bool isFocusable)

描述

设置指定窗口是否可获焦。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool isFocusable窗口是否可获焦。true表示窗口可获焦,false表示窗口不可获焦。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowBackgroundColor()

int32_t OH_WindowManager_SetWindowBackgroundColor(int32_t windowId, const char* color)

描述

设置指定窗口背景颜色。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
const char* color设置窗口的背景色。该参数为字符串类型,格式为十六进制RGB或ARGB颜色。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。

OH_WindowManager_SetWindowBrightness()

int32_t OH_WindowManager_SetWindowBrightness(int32_t windowId, float brightness)

描述

设置指定窗口的屏幕亮度。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
float brightness指定的屏幕亮度值。该参数为浮点数,取值范围为[0.0, 1.0]或-1.0。1.0表示最亮,-1.0表示默认亮度。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowKeepScreenOn()

int32_t OH_WindowManager_SetWindowKeepScreenOn(int32_t windowId, bool isKeepScreenOn)

描述

设置指定窗口是否开启屏幕常亮。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool isKeepScreenOn指定窗口是否开启屏幕常亮。true表示开启屏幕常亮,false表示关闭屏幕常亮。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_SetWindowPrivacyMode()

int32_t OH_WindowManager_SetWindowPrivacyMode(int32_t windowId, bool isPrivacy)

描述

设置指定窗口是否开启隐私模式。

需要权限: {@code ohos.permission.PRIVACY_WINDOW}。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
bool isPrivacy指定窗口是否开启隐私模式。true表示开启隐私模式,false表示关闭隐私模式。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PERMISSION,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。
返回WINDOW_MANAGER_ERRORCODE_NO_PERMISSION,权限校验错误。

OH_WindowManager_GetWindowProperties()

int32_t OH_WindowManager_GetWindowProperties(int32_t windowId, WindowManager_WindowProperties* windowProperties)

描述

获取指定窗口属性。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
WindowManager_WindowProperties* windowProperties返回指向指定窗口的属性的指针,作为出参使用。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功,在windowProperties中返回窗口属性的指针。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_Snapshot()

int32_t OH_WindowManager_Snapshot(int32_t windowId, OH_PixelmapNative* pixelMap)

描述

获取指定窗口截图。

起始版本: 15

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
窗口id非法或者窗口已经销毁,不能获取指定窗口截图,需要传入有效的窗口id才能成功获取指定窗口截图。
请通过窗口对象调用getWindowProperties接口(ArkTS接口)获取有效的窗口id。
OH_PixelmapNative* pixelMap返回指向指定窗口的截图的指针,作为出参使用。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功,在返回pixelMap中的像素图的指针。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。

OH_WindowManager_GetAllWindowLayoutInfoList()

int32_t OH_WindowManager_GetAllWindowLayoutInfoList(int64_t displayId,WindowManager_Rect** windowLayoutInfoList, size_t* windowLayoutInfoSize)

描述

获取指定屏幕上可见的窗口布局信息数组,按当前窗口层级排列,层级最高的对应数组下标为0。

起始版本: 17

参数:

参数项描述
int64_t displayId指定屏幕的id。请通过窗口对象调用getWindowProperties接口(ArkTS接口)获取有效的屏幕id。
WindowManager_Rect** windowLayoutInfoList指定屏幕上可见的窗口布局信息数组的数组指针,作为出参使用。
size_t* windowLayoutInfoSize指定屏幕上可见的窗口布局信息数组长度的指针,作为出参使用。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功,返回指定屏幕上可见的窗口布局信息数组的数组指针和数组长度的指针。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_DEVICE_NOT_SUPPORTED,表示不支持功能。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

OH_WindowManager_ReleaseAllWindowLayoutInfoList()

void OH_WindowManager_ReleaseAllWindowLayoutInfoList(WindowManager_Rect* windowLayoutInfoList)

描述

释放窗口布局信息数组占用的内存。

起始版本: 17

参数:

参数项描述
WindowManager_Rect* windowLayoutInfoList指定屏幕上可见的窗口布局信息数组的数组指针,可通过OH_WindowManager_GetAllWindowLayoutInfoList接口获取。

OH_WindowManager_InjectTouchEvent()

int32_t OH_WindowManager_InjectTouchEvent(int32_t windowId, Input_TouchEvent* touchEvent)

描述

将多模触摸事件注入给目标窗口,该注入不会触发窗口焦点和层级变化,直接发送给ArkUI。

起始版本: 20

参数:

参数项描述
int32_t windowId创建窗口时的窗口id。默认值为0。该参数为整数。
Input_TouchEvent* touchEvent多模触摸事件,具体可见Input_TouchEvent,事件定义在oh_input_manager.h中。

返回:

类型说明
int32_t返回结果代码。
返回OK,表示函数调用成功。
返回WINDOW_MANAGER_ERRORCODE_INVALID_PARAM,表示参数错误。
返回WINDOW_MANAGER_ERRORCODE_STATE_ABNORMAL,表示窗口状态异常。
返回WINDOW_MANAGER_ERRORCODE_SYSTEM_ABNORMAL,表示窗口管理器服务异常。

你可能感兴趣的鸿蒙文章

harmony 鸿蒙ArkUI(方舟UI框架)

harmony 鸿蒙ARKUI_TextPickerCascadeRangeContent

harmony 鸿蒙ARKUI_TextPickerRangeContent

harmony 鸿蒙ArkUI_AnimateCompleteCallback

harmony 鸿蒙ArkUI_AttributeItem

harmony 鸿蒙ArkUI_ColorStop

harmony 鸿蒙ArkUI_ContextCallback

harmony 鸿蒙ArkUI_EventModule

harmony 鸿蒙ArkUI_ExpectedFrameRateRange

harmony 鸿蒙ArkUI_IntOffset

  • 所属分类: 后端技术
  • 本文标签: 软件 鸿蒙
  • 版权声明: 本文链接 https://seaxiang.com/blog/9vgsrF