当前位置: 首页 > news >正文

【WinAPI详解】<CreateWindowEx详解>

函数原型:

HWND CreateWindowEx(DWORD		dwExStyle,	 //窗口的扩展风格(加强版专有)LPCTSTR 	lpClassName, //已经注册的窗口类名称LPCTSTR		lpWindowName,//窗口标题栏的名字DWORD		dwStyle,	 //窗口的基本风格int			x,			 //窗口左上角水平坐标位置int 		y,			 //窗口左上角垂直坐标位置int 		nWidth,		 //窗口的宽度int 		nHeight,	 //窗口的高度HWND		hWndParent,	 //窗口的父窗口句柄WMENU		hMenu,		 //窗口的菜单句柄HINSTANCE	hInstance,	 //应用程序实例句柄LPVOID		lpParam		 //窗口创建时附加参数);	//创建成功返回窗口句柄

目录

1.        DWORD        dwExStyle        //窗口的扩展风格(加强版专有)

2.        DWORD        dwStyle        //窗口的基本风格

3.        LPCTSTR        lpClassName        //已经注册的窗口类名称

4.        实例


参数解析:

参数

含义        

dwExStyle指定创建窗口的扩展风格(详见下方↓)

lpClassName

1. 窗口类名称,可以是一个指向 NULL 结束的字符串或一个整型数值
2. 如果是字符串,它指定了窗口的类名。这个类名可以是任何用函数 RegisterClass 注册的类名,或是任何预定义的控制类名
3. 如是一个整型量,它是由此前调用 theGlobalAddAtom 函数产生的全局量。这个小于 0xC000 的 16 位数必须是 lpClassName 参数字的低 16 位,该参数的高位必须是 0

lpWindowName

1. 窗口标题,一个指向 NULL 结束的字符串指针
2. 如果窗口风格指定了标题条,由 lpWindowName 指向的窗口标题将显示在标题条上
3. 当使用 CreatewindowEx 函数来创建控制例如按钮,选择框和静态控制时,可使用 lpWindowName 来指定控制文本

dwStyle

指定创建窗口的风格(详见下方↓)

x

1. 指定窗口的初始水平位置(x 坐标)
2. 对一个层叠或弹出式窗口,x 参数是屏幕坐标系的窗口的左上角的初始 x 坐标
3. 对于子窗口,x 是子窗口左上角相对父窗口客户区左上角的初始 x 坐标
4. 如果该参数被设为 CW_USEDEFAULT 则系统为窗口选择缺省的左上角坐标并忽略 y 参数,CW_USEDEFAULT 只对层叠窗口有效,如果为弹出式窗口或子窗口设定,则 x 和 y 参数被设为零。

y

1. 指定窗口的初始垂直位置(y 坐标)
2. 对一个层叠或弹出式窗口,y 参数是屏幕坐标系的窗口的左上角的初始 y 坐标
3. 对于子窗口,y 是子窗口左上角相对父窗口客户区左上角的初始 y 坐标
4. 对于列表框,y 是列表框客户区左上角相对父窗口客户区左上角的初始 y 坐标
5. 如果层叠窗口是使用 WS_VISIBLE 风格位创建的并且 x 参数被设为 CW_USEDEFAULT,则系统将忽略 y 参数

nWidth

1. 以设备单元指明窗口的宽度
2. 对于层叠窗口,nWidth 的值或是屏幕坐标的窗口宽度或是 CW_USEDEFAULT
3. 若 nWidth 是 CW_USEDEFAULT,则系统为窗口选择一个默认的高度和宽度(默认宽度为从初始 x 坐标开始到屏幕的右边界,缺省高度为从初始 y 坐标开始到目标区域的顶部。),CW_USEDEFAULT 只对层叠窗口有效,如果为弹出式窗口和子窗口设定 CW_USEDEFAULT 标志则 nWidth 和 nHeight 被设为零

nHeight

1. 以设备单元指明窗口的高度
2. 对于层叠窗口,nHeight 是屏幕坐标的窗口宽度
3. 若 nWidth 被设为 CW_USEDEFAULT,则系统忽略 nHeight 参数,自动为 nWidth 和 nHeight 设置默认参数

hWndParent

1. 指向被创建窗口的父窗口或所有者窗口的句柄
2. 若要创建一个子窗口或一个从属窗口,需提供一个有效的窗口句柄
3. 创建一个单纯的消息窗口,可以提供 HWND_MESSAGE 或提供一个己存在的消息窗口的句柄

hMenu

1. 指向窗口菜单句柄,或依据窗口风格指明一个子窗口标识
2. 对于层叠或弹出式窗口,hMenu 指定窗口使用的菜单:如果使用了菜单类,则 hMenu 可以为 NULL
3. 对于子窗口,hMenu 指定了该子窗口标识(一个整型量),一个对话框使用这个整型值将事件通知父类。应用程序确定子窗口标识,这个值对于相同父窗口的所有子窗口必须是唯一的

hInstance

与窗口相关联的模块实例的句柄

lpParam

1. 指向一个值的指针,该值传递给窗口 WM_CREATE 消息。该值通过在 IParam 参数中的 CREATESTRUCT 结构传递
2. 如果应用程序调用 CreateWindow 创建一个 MDI 客户窗口,则 lpParam 必须指向一个 CLIENTCREATESTRUCT 结构


参数说明:

1.        DWORD        dwExStyle        //窗口的扩展风格(加强版专有)

指定扩展的窗口样式。为以下值中的一个或多个(devc++用“|”连接):

WS_EX_ACCEPTFILES指定此样式创建一个窗口接受拖放文件。
WS_EX_APPWINDOW当窗口可见时部队一个顶级窗口到任务栏上。
WS_EX_CLIENTEDGE指定窗口具有三维外观 — — 就是一个边界与沉没的边缘。
WS_EX_CONTEXTHELP在窗口的标题栏中包括一个问号。当用户单击问号,光标更改为一个问号指针。如果用户单击一个子窗口,孩子接受WM_HELP消息。
WS_EX_CONTROLPARENT允许用户使用 TAB 键导航之间的子窗口的窗口。
WS_EX_DLGMODALFRAME选定一个带有 (可选) 时,可能创建一个标题栏与你在dwStyle参数中指定WS_CAPTION风格标志的双边框的窗口。
WS_EX_LAYERED创建分层的窗口。请注意这不能用于子窗口。此外,这不能使用如果窗口有 CS_OWNDC 或 CS_CLASSDC 的类样式
WS_EX_LAYOUTRTL创建一个窗口,其水平的起源是右边缘。增加水平值预先向左。
WS_EX_LEFT给窗口一般左对齐属性。这是默认值。
WS_EX_LEFTSCROLLBAR客户区的左侧放置垂直滚动条。
WS_EX_LTRREADING显示窗口文本使用从左到右阅读顺序属性。这是默认值。
WS_EX_MDICHILD创建 MDI 子窗口。
WS_EX_NOPARENTNOTIFY指定用这种方式创建的子窗口将不发送WM_PARENTNOTIFY消息给它的父窗口创建或销毁子窗口时。
WS_EX_OVERLAPPEDWINDOW结合WS_EX_CLIENTEDGE和WS_EX_WINDOWEDGE的样式
WS_EX_PALETTEWINDOW结合WS_EX_WINDOWEDGE和WS_EX_TOPMOST的样式。
WS_EX_RIGHT给一个窗口右对齐的通用属性。这取决于该窗口类。
WS_EX_RIGHTSCROLLBAR右侧的客户区地方垂直滚动条 (如果存在)。这是默认值。
WS_EX_RTLREADING显示窗口文本使用右到左的阅读顺序属性。
WS_EX_STATICEDGE创建具有三维边框样式可用于不接受用户输入的项目窗口。
WS_EX_TOOLWINDOW创建一个工具窗口,它是可用于作为一个浮动的工具栏窗口。一个工具窗口具有短于正常的标题栏,标题栏和使用较小字体绘制的窗口标题。
工具窗口不会出现在任务条形图或当用户按下 ALT + TAB 时出现的窗口中。
WS_EX_TOPMOST指定此样式创建一个窗口应放置高于所有顶层窗口和窗口被停用时,即使它们上面留。
应用程序可以使用SetWindowPos成员函数来添加或删除该属性。
WS_EX_TRANSPARENT指定此样式创建一个窗口将是透明的。就是任何窗口,在窗口下方的窗口不被遮盖。用此样式创建一个窗口收到WM_PAINT消息已经更新,
在它下面的所有同级窗口后才。
WS_EX_WINDOWEDGE指定窗口已具有凸起的边缘的边框。

2.        DWORD        dwStyle        //窗口的基本风格

指定窗口样式。其值为以下值中的一个或多个(devc++用“|”连接):

WS_BORDER创建一个有边框的窗口。
WS_CAPTION创建一个具有标题栏 (意味着WS_BORDER样式) 的窗口。不能用的WS_DLGFRAME样式。
WS_CHILD创建一个子窗口。不能用的WS_POPUP样式。
WS_CHILDWINDOW与WS_CHILD样式相同。
WS_CLIPCHILDREN不包括在父窗口内绘制时子窗口所占用的区域。当您创建父窗口时使用。
WS_CLIPSIBLINGS剪辑子窗口彼此;也就是说,当一个特定的子窗口接收绘制消息, WS_CLIPSIBLINGS风格剪辑子窗口要更新的区域外的所有其他重叠的子窗口。
(如果没有给WS_CLIPSIBLINGS和子窗口重叠内子窗口的客户区, 绘制时,它是可能内相邻的子窗口的客户区的绘制。与WS_CHILD样式只一起使用。
WS_DISABLED创建一个窗口是最初被禁用。
WS_DLGFRAME创建一个窗口,但是没有头衔的双边框。
WS_GROUP指定一组控件,用户可以从一个控件移向下的箭头键的第一个控件。用虚假的WS_GROUP样式后的第一个控件定义的所有控件都属于同一个组。
WS_GROUP样式的下一控件启动下一个组 (就是下一步的开始位置的一组结束)。
WS_HSCROLL创建一个具有水平滚动条的窗口。
WS_ICONIC创建一个最初最小化的窗口。WS_MINIMIZE样式相同。
WS_MAXIMIZE创建一个窗口的最大大小。
WS_MAXIMIZEBOX创建一个窗口有最大化按钮。
WS_MINIMIZE创建一个最初最小化的窗口。与仅WS_OVERLAPPED样式一起使用。
WS_MINIMIZEBOX创建一个具有最小化按钮的窗口。
WS_OVERLAPPED创建重叠的窗口。重叠的窗口通常具有标题和边框。
WS_OVERLAPPEDWINDOW与WS_OVERLAPPED、 WS_CAPTION、 WS_SYSMENU、 WS_THICKFRAME、 WS_MINIMIZEBOX和WS_MAXIMIZEBOX样式创建重叠的窗口。
WS_POPUP创建一个弹出窗口。不能使用具有WS_CHILD样式。
WS_POPUPWINDOW用WS_BORDER, WS_POPUP和WS_SYSMENU的样式创建一个弹出窗口。WS_CAPTION样式必须结合WS_POPUPWINDOW样式,以使控制菜单上可见。
WS_SIZEBOX创建一个具有大小调整边框的窗口。WS_THICKFRAME样式相同。
WS_SYSMENU创建一个窗口,都有一个控制菜单框在其标题栏中。仅用于带有标题栏的窗口。
WS_TABSTOP指定任意数量的控件,通过它用户可以通过使用 TAB 键移动之一。TAB 键移动用户到指定WS_TABSTOP风格的下一个控件。
WS_THICKFRAME创建一个窗口,用厚厚的框架,可以用来调整窗口的大小。
WS_TILED创建重叠的窗口。重叠的窗口有标题栏和边框。WS_OVERLAPPED样式相同。
WS_TILEDWINDOW 用 WS_OVERLAPPED、 WS_CAPTION、 WS_SYSMENU、 WS_THICKFRAME、 WS_MINIMIZEBOX 和 WS_MAXIMIZEBOX 的样式创建重叠的窗口。
与WS_OVERLAPPEDWINDOW 样式相同。
WS_VISIBLE创建的窗体可见
WS_VSCROLL 

创建一个具有垂直滚动条的窗口.

3.        LPCTSTR        lpClassName        //已经注册的窗口类名称

指定类名。是一个指针,指向以null结尾的串。

可以是任意串,也可以是用RegisterClass或RegisterClassEx注册的类名,也可以是系统类名。(Dev-C++用双引号)

系统类名说明
Button按钮
ComboBox组合框
Edit编辑框
ListBox列表框
MDIClientMDI客户端窗口
ScrollBar滚动条
Static静态控件类
ComboLBox组合框列表
DDEMLEvent动态数据交换管理库(DDEML)事件
Message只有消息的窗口
#32768菜单
#32769桌面窗口
#32770对话框
#32771任务切换窗口
#32772图标标题
使用时需包含:#include <CommCtrl.h> 头文件        
类名说明(Dev-C++引用时不用双引号,直接按常量引用)

ANIMATE_CLASS

创建动画控件。 这些控件以无提示方式显示音频视频交错 (AVI) 剪辑。

DATETIMEPICK_CLASS

创建日期和时间选取器控件。 这些控件提供一个简单的界面,用于与用户交换日期和时间信息。

HOTKEY_CLASS

创建热键控件。 通过这些控件,用户可以轻松定义热键。

LINK_CLASS

创建 syslink 控件。 这些控件与链接一起使用。

MONTHCAL_CLASS

创建月历控件。 这些控件为用户从熟悉的界面中选择日期提供了一种简单方法。

NATIVEFNTCTL_CLASS

创建本机字体控件。 这些控件与本机字体一起使用。

PROGRESS_CLASS

创建进度栏。 这些控件指示长时间操作的进度。

REBARCLASSNAME

创建 rebar 控件。 这些控件充当子窗口的容器。

STANDARD_CLASSES

创建内部 User32 控件,例如按钮、编辑和滚动条。

STATUSCLASSNAME

创建状态窗口。 这些控件在水平窗口中显示状态信息。

TOOLBARCLASSNAME

创建工具栏。 这些控件包含执行菜单命令的按钮。

TOOLTIPS_CLASS

创建工具提示控件。 这些控件显示一个小弹出窗口,其中包含描述应用程序中工具用途的文本行。

TRACKBAR_CLASS

创建跟踪条。 这些控件允许用户通过移动滑块从一系列值中进行选择。

UPDOWN_CLASS

创建向上控件。 这些控件将箭头配对与编辑控件组合在一起。 单击箭头递增或递减编辑控件中的值。

WC_BUTTON

创建按钮控件。 这些控件使用户能够启动操作。

WC_COMBOBOX

创建组合框控件。 这些控件包含一个下拉列表,可从中选择单个项。

WC_COMBOBOXEX

创建 ComboBoxEx 控件。 这些控件提供组合框控件的扩展,该控件提供对项图像的本机支持。

WC_EDIT

创建编辑控件。 这些控件包含可编辑的文本。

WC_HEADER

创建标头控件。 这些控件显示信息列顶部的标题,让用户通过单击标题对信息进行排序。

WC_LISTBOX

创建 listbox 控件。 这些控件包含项列表。

WC_IPADDRESS

创建 IP 地址控件。 这些控件类似于编辑控件,但它们允许你以 Internet 协议 (IP) 格式输入数字地址。

WC_LINK

创建 SysLink 控件。 这些控件包含超文本链接。

WC_LISTVIEW

创建列表视图控件。 这些控件显示项目集合,每个项由图标和标签组成,并提供多种排列项的方法。

WC_NATIVEFONTCTL

创建本机字体控件。 这些是后台工作的不可见控件,使对话框的预定义控件能够显示当前系统语言。

WC_PAGESCROLLER

创建寻呼控件。 这些控件用于包含和滚动另一个窗口。

WC_SCROLLBAR

创建滚动条控件。 这些控件使用户能够滚动窗口的内容。

WC_STATIC

创建静态控件。 这些控件包含不可编辑的文本。

WC_TABCONTROL

创建选项卡控件。 这些控件为窗口或对话框的同一区域定义多个页面。 每个页面由一组信息或应用程序在用户选择相应选项卡时显示的一组控件组成。

WC_TREEVIEW

创建树视图控件。 这些控件显示项的分层列表。 每个项都包含一个标签和一个可选的位图。

4.        实例

[Dev-C++]创建一个只有关闭按钮,不在任务栏显示,不能改变大小,保持在上的右下角的窗口

#include <windows.h>/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {switch(Message) {/* Upon destruction, tell the main thread to stop */case WM_DESTROY: {PostQuitMessage(0);break;}/* All other messages (a lot of them) are processed using default procedures */default:return DefWindowProc(hwnd, Message, wParam, lParam); }return 0;
}/* The 'main' function of Win32 GUI programs: this is where execution starts */
int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpCmdLine, int nCmdShow) {WNDCLASSEX wc; /* A properties struct of our window */HWND hwnd; /* A 'HANDLE', hence the H, or a pointer to our window */MSG msg; /* A temporary location for all messages *//* zero out the struct and set the stuff we want to modify */memset(&wc,0,sizeof(wc));wc.cbSize		 = sizeof(WNDCLASSEX);wc.lpfnWndProc	 = WndProc; /* This is where we will send messages to */wc.hInstance	 = hInstance;wc.hCursor		 = LoadCursor(NULL, IDC_ARROW);/* White, COLOR_WINDOW is just a #define for a system color, try Ctrl+Clicking it */wc.hbrBackground = (HBRUSH)(COLOR_WINDOW+1);wc.lpszClassName = "WindowClass";wc.hIcon		 = LoadIcon(NULL, IDI_APPLICATION); /* Load a standard icon */wc.hIconSm		 = LoadIcon(NULL, IDI_APPLICATION); /* use the name "A" to use the project icon */if(!RegisterClassEx(&wc)) {MessageBox(NULL, "Window Registration Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);return 0;}HWND hd = GetDesktopWindow();RECT rect;GetWindowRect(hd, &rect);	int no_menu_bar_width = GetSystemMetrics(SM_CXFULLSCREEN);int no_menu_bar_height = GetSystemMetrics(SM_CYFULLSCREEN);hwnd = CreateWindowEx(WS_EX_CLIENTEDGE|WS_EX_TOOLWINDOW|WS_EX_TOPMOST,"WindowClass","HBoss",WS_VISIBLE|WS_CAPTION|WS_SYSMENU,no_menu_bar_width-240, /* x */no_menu_bar_height-120, /* y */240, /* width */120, /* height */NULL,NULL,hInstance,NULL);if(hwnd == NULL) {MessageBox(NULL, "Window Creation Failed!","Error!",MB_ICONEXCLAMATION|MB_OK);//return 0;}/*This is the heart of our program where all input is processed and sent to WndProc. Note that GetMessage blocks code flow until it receives something, sothis loop will not produce unreasonably high CPU usage*/while(GetMessage(&msg, NULL, 0, 0) > 0) { /* If no error is received... */TranslateMessage(&msg); /* Translate key codes to chars if present */DispatchMessage(&msg); /* Send it to WndProc */}return msg.wParam;
}

相关文章:

【WinAPI详解】<CreateWindowEx详解>

函数原型: HWND CreateWindowEx(DWORD dwExStyle, //窗口的扩展风格&#xff08;加强版专有&#xff09;LPCTSTR lpClassName, //已经注册的窗口类名称LPCTSTR lpWindowName,//窗口标题栏的名字DWORD dwStyle, //窗口的基本风格int x, //窗口左上角水平坐标位置int …...

【Git】分支管理

文章目录 一、理解分支二、创建、切换、合并分支三、删除分支四、合并冲突五、合并模式六、分支策略七、bug分支八、强制删除分支 努力经营当下 直至未来明朗&#xff01; 一、理解分支 HEAD指向的是master分支&#xff0c;master中指向的是最新一次的提交&#xff0c;也就是m…...

玩转单元测试之gtest

引言 程序开发的时候&#xff0c;往往需要编写一些测试样例来完成功能测试&#xff0c;以保证自己的代码在功能上符合预期&#xff0c;能考虑到一些异常边界问题等等。 gtest快速入门 1.引入gtest # 使用的是1.10版本&#xff0c;其他版本可根据需要选择 git clone -b v1.1…...

Tomcat 一次请求的生命周期

在使用 Tomcat 的时候&#xff0c;我们只需要在 Servlet 实现类中写我们的业务逻辑代码即可&#xff0c;不需要管 Socket 连接、协议处理要怎么实现&#xff0c;因为这部分作为不经常变动的部分&#xff0c;被封装到了 Tomcat 中&#xff0c;程序员只需要引入 Tomcat 中即可&am…...

spring cloud gateway中配置uri

gateway中配置uri配置有三种方式: websocket方式&#xff1a;uri: ws://localhost:9000http方式: uri: http://localhost:8130/lb注册中心配置方式&#xff08;注册的服务名称&#xff09;: uri: lb://monitor-ms gateway的lb方式识别的服务名称命名规则&#xff1a; "[…...

使用NAudio录制wav音频

NAudio NAudio官网 环境 Unity2019.4.34f1c1 Window10 NAudio 1.10 .Net 3.5 录制音频 WaveInEvent类可录制音频 StartRecording方法 启用录制StopRecording方法 停止录制DataAvailable 录制中回调RecordingStopped 录制结束回调 WaveFileWriter类可存储音频 Write方法…...

数据结构之动态内存管理机制

目录 数据结构之动态内存管理机制 占用块和空闲块 系统的内存管理 可利用空间表 分配存储空间的方式 空间分配与回收过程产生的问题 边界标识法管理动态内存 分配算法 回收算法 伙伴系统管理动态内存 可利用空间表中结点构成 分配算法 回收算法 总结 无用单元收…...

【汇编语言】栈及栈操作的实现

文章目录 栈结构栈操作栈的小结 栈结构 栈是一种只能在一端插入或删除的数据结构&#xff1b;栈有两个基本的操作&#xff1a;入栈和出栈&#xff1b; 入栈&#xff1a;将一个新的元素放到栈顶&#xff1b;出栈&#xff1a;从栈顶取出一个元素&#xff1b; 栈的操作规则&#…...

【JavaEE】面向切面编程AOP是什么-Spring AOP框架的基本使用

【JavaEE】Spring AOP&#xff08;1&#xff09; 文章目录 【JavaEE】Spring AOP&#xff08;1&#xff09;1. Spring AOP 是什么1.1 AOP 与 Spring AOP1.2 没有AOP的世界是怎样的1.3 AOP是什么 2. Spring AOP 框架的学习2.1 AOP的组成2.1.1 Aspect 切面2.1.2 Pointcut 切点2.1…...

SpringBoot+微信小程序奶茶在线点单小程序系统 附带详细运行指导视频

文章目录 一、项目演示二、项目介绍三、运行截图四、主要代码 一、项目演示 项目演示地址&#xff1a; 视频地址 二、项目介绍 项目描述&#xff1a;这是一个基于SpringBoot微信小程序框架开发的奶茶在线点单小程序系统。首先&#xff0c;这是一个前后端分离的项目&#xff…...

【支付宝小程序】开发基础--文件结构教程

&#x1f996;我是Sam9029&#xff0c;一个前端 Sam9029的CSDN博客主页:Sam9029的博客_CSDN博客-JS学习,CSS学习,Vue-2领域博主 &#x1f431;‍&#x1f409;&#x1f431;‍&#x1f409;恭喜你&#xff0c;若此文你认为写的不错&#xff0c;不要吝啬你的赞扬&#xff0c;求收…...

LLM 生成式配置的推理参数温度 top k tokens等 Generative configuration inference parameters

在这个视频中&#xff0c;你将了解一些方法和相关的配置参数&#xff0c;这些参数可以用来影响模型在下一个词生成时的最终决策方式。如果你在Hugging Face网站或AWS的游乐场中使用过LLMs&#xff0c;你可能已经看到了这些控制选项&#xff0c;用来调整LLM的行为。每个模型都暴…...

npm的镜像源和代理的查看和修改

一、镜像源 查询当前镜像源 npm get registry 设置为淘宝镜像 npm config set registry http://registry.npm.taobao.org/ 设置回默认的官方镜像 npm config set registry https://registry.npmjs.org/ 设置electron为淘宝镜像 npm config set ELECTRON_MIRROR "h…...

IP库新增经过实践的Verilog 库

网上严重缺乏实用的 Verilog 设计。Project F 库是尝试让 FPGA 初学者变得更好部分。 设计包括 Clock- 时钟生成 (PLL) 和域交叉Display - 显示时序、帧缓冲区、DVI/HDMI 输出Essential- 适用于多种设计的便捷模块Graphics- 绘制线条和形状Maths- 除法、LFSR、平方根、正弦....…...

SLAM-VIO视觉惯性里程计

SLAM 文章目录 SLAM前言IMU与视觉比较单目视觉缺陷&#xff1a;融合IMU优势&#xff1a;相机-IMU标定松耦合紧耦合基于滤波的融合方案&#xff1a;基于优化的融合方案&#xff1a; 前言 VIO&#xff08;visual-inertial odometry&#xff09;即视觉惯性里程计&#xff0c;有时…...

分布式 RPC 框架入门

分布式 RPC 框架入门 警告 torch.distributed.rpc 程序包是实验性的&#xff0c;随时可能更改。 它还需要 PyTorch 1.4.0才能运行&#xff0c;因为这是第一个支持 RPC 的版本。 本教程使用两个简单的示例来演示如何使用 torch.distributed.rpc 软件包构建分布式训练&#xf…...

Spring boot与Spring cloud 之间的关系

Spring boot与Spring cloud 之间的关系 Spring boot 是 Spring 的一套快速配置脚手架&#xff0c;可以基于spring boot 快速开发单个微服务&#xff0c;Spring Boot&#xff0c;看名字就知道是Spring的引导&#xff0c;就是用于启动Spring的&#xff0c;使得Spring的学习和使用…...

报名开启 | HarmonyOS第一课“营”在暑期系列直播

<HarmonyOS第一课>2023年再次启航&#xff01; 特邀HarmonyOS布道师云集华为开发者联盟直播间 聚焦HarmonyOS 4版本新特性 邀您一同学习赢好礼&#xff01; 你准备好了吗&#xff1f; ↓↓↓预约报名↓↓↓ 点击关注了解更多资讯&#xff0c;报名学习...

Apache DolphinScheduler 支持使用 OceanBase 作为元数据库啦!

DolphinScheduler是一个开源的分布式任务调度系统&#xff0c;拥有分布式架构、多任务类型、可视化操作、分布式调度和高可用等特性&#xff0c;适用于大规模分布式任务调度的场景。目前DolphinScheduler支持的元数据库有Mysql、PostgreSQL、H2&#xff0c;如果在业务中需要更好…...

matlab使用教程(17)—广度优先和深度优先搜索

1.可视化广度优先搜索和深度优先搜索 此示例说明如何定义这样的函数&#xff1a;该函数通过突出显示图的节点和边来显示 bfsearch 和 dfsearch 的可视化结果。 创建并绘制一个有向图。 s [1 2 3 3 3 3 4 5 6 7 8 9 9 9 10]; t [7 6 1 5 6 8 2 4 4 3 7 1 6 8 2]; G dig…...

CSerialPort教程4.3.x (2) - CSerialPort源码简介

CSerialPort教程4.3.x (2) - CSerialPort源码简介 前言 CSerialPort项目是一个基于C/C的轻量级开源跨平台串口类库&#xff0c;可以轻松实现跨平台多操作系统的串口读写&#xff0c;同时还支持C#, Java, Python, Node.js等。 CSerialPort项目的开源协议自 V3.0.0.171216 版本…...

【数据结构OJ题】有效的括号

原题链接&#xff1a;https://leetcode.cn/problems/valid-parentheses/ 目录 1. 题目描述 2. 思路分析 3. 代码实现 1. 题目描述 2. 思路分析 这道题目主要考查了栈的特性&#xff1a; 题目的意思主要是要做到3点匹配&#xff1a;类型、顺序、数量。 题目给的例子是比较…...

Java性能分析中常用命令和工具

当涉及到 Java 性能分析时&#xff0c;有一系列强大的命令和工具可以帮助开发人员分析应用程序的性能瓶颈、内存使用情况和线程问题。以下是一些常用的 Java 性能分析命令和工具&#xff0c;以及它们的详细说明和示例。 以下是一些常用的性能分析命令和工具汇总&#xff1a; …...

JVM性能分析-jstat工具观察gc频率

jstat jstat是java自带的工具&#xff0c;在bin目录下 用法 语法&#xff1a;jstat -<option> [-t] [-h<lines>] <vmid> [<interval> [<count>]] [kqkyyj-2 bin]$ jstat -help Usage: jstat -help|-optionsjstat -<option> [-t] [-h&l…...

mysql 查询报错 1267 - Illegal mix of collations

mysql 查询报错 1267 - Illegal mix of collations 详细报错: 1267 - Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_unicode_ci,IMPLICIT) for 主要的原因其实就是两张表的字符集不一样改一下就行了。 注: 改了表还是报错的话,那就是表内的字段没有…...

【ARM】Day6

cotex-A7核UART总线实验 1. 键盘输入一个字符‘a’&#xff0c;串口工具显示‘b’ 2. 键盘输入一个字符串"nihao"&#xff0c;串口工具显示“nihao” uart.h #ifndef __UART4_H__ #define __UART4_H__#include "stm32mp1xx_rcc.h" #include "stm3…...

深入理解Flink Mailbox线程模型

文章目录 整体设计processMail1.Checkpoint Tigger2.ProcessingTime Timer Trigger processInput兼容SourceStreamTask 整体设计 Mailbox线程模型通过引入阻塞队列配合一个Mailbox线程的方式&#xff0c;可以轻松修改StreamTask内部状态的修改。Checkpoint、ProcessingTime Ti…...

Docker搭建LNMP运行Wordpress平台

一、项目1.1 项目环境1.2 服务器环境1.3 任务需求 二、Linux 系统基础镜像三、Nginx1、建立工作目录2、编写 Dockerfile 脚本3、准备 nginx.conf 配置文件4、生成镜像5、创建自定义网络6、启动镜像容器7、验证 nginx 四、Mysql1、建立工作目录2、编写 Dockerfile3、准备 my.cnf…...

10个常见渐变交互效果

1、透明度渐变背景交互 <div class"fade-background"></div> Copy .fade-background {width: 200px;height: 200px;background: linear-gradient(to bottom, rgba(255, 0, 0, 0), rgba(255, 0, 0, 1));transition: background 0.5s ease; }.fade-backgro…...

[线程/C]基础

文章目录 1. 线程介绍2. 创建线程2.1 线程函数2.2 创建线程 3. 线程退出4. 线程回收4.1 线程函数4.2 回收子线程数据4.2.1 使用子线程栈4.2.2 使用全局变量4.2.3 使用主线程栈 5. 线程分离6. 其他线程函数6.1 线程取消6.2 线程ID的比较 1. 线程介绍 线程是轻量级的进程&#x…...

青岛知名网站建设公司/百度推广登录平台网址

导读&#xff1a;一直以来&#xff0c;众多学校教学以及公司开发环境所使用Visual Studio .NET Framework版本多不相同&#xff0c;本文作者比较了.NET Framework多个版本之间的区别&#xff0c;方便各位选择和切换.NET Framework。 版本号发布日期Visual Studio的版本Windows上…...

做网站大公司有哪些/百度seo效果

内容出自《代码整洁之道》、Alex Kondov[1]的博文tao-of-react[2]和《Clean Code of Javascript》image.png代码整洁有什么用&#xff1f;image.png思路清晰&#xff0c;降低bug几率更容易维护&#xff0c;利于团队协作看起来舒服&#xff0c;提高效率......软件质量与代码整洁…...

钢琴网站建设原则/许昌网络推广外包

本文档以实战的形式介绍系统如何禁用 IPV6, 使用的操纵系统是 RHEL7.3更改/etc/sysctl.conf配置文件[rootJaking vsftpd]# vim /etc/sysctl.conf# sysctl settings are defined through files in# /usr/lib/sysctl.d/, /run/sysctl.d/, and /etc/sysctl.d/.## Vendors settings…...

巩义网站建设/实事新闻热点

使用报表模型来设计报表的时候&#xff0c;我们可能会用到一些条件筛选&#xff0c;和直接使用存储过程来查询相比&#xff0c;还是有点儿区别的&#xff0c;使用存储过程或者查询语句的话&#xff0c;我们可以通过设置一些变量参数"Id”等&#xff0c;然后在数据集的参数…...

徐州金网网站建设/中国营销传播网官网

自建数据集实现车标识别 使用YOLOv5 YOLOv3算法训练的模型 支持奔驰 宝马 奥迪 别克 丰田等常见车标 效果还是不错的&#xff0c;同时使用pyqt开发的简易可视化界面...

王者荣誉网站怎么做/营销心得体会感悟300字

【来信】 尊敬的贺老师&#xff1a;  你好&#xff0c;我是烟大计算机学院大一的学生&#xff0c;曾有幸听过您的一节课&#xff0c;我的老师也曾向我们提起过你&#xff0c;我知道您是一位热心的领路人&#xff0c;我这里有一些问题想请教你&#xff0c;希望您能帮我解答一下…...