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

【C++】<Windows编程中消息即事件的处理>

目录

一、注册窗口类,指定消息处理函数,捕获消息并发给处理函数

二、消息处理函数

三、通用窗口消息

四、其他消息

1.滚动条消息

2.按钮控件消息

3.按钮控件通知消息

4.按键消息

5.系统菜单等消息

6.组合框控件消息

7.组合框控件通知消息

8.列表框控件消息

9.列表框控件通知消息

10.鼠标消息

11.窗口相关消息

12.输入法相关消息

13.剪贴板相关消息

14.其他消息


一、注册窗口类,指定消息处理函数,捕获消息并发给处理函数
/* 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 */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; /* 指定消息处理函数 */...RegisterClassEx(&wc);/* 注册窗口类 */.../* 创建窗口 */while(GetMessage(&msg, NULL, 0, 0) > 0) { /* 捕获消息 */TranslateMessage(&msg); /* 把虚拟键消息转换为字符消息 */DispatchMessage(&msg); /* 发送消息给消息处理函数 */}return msg.wParam;}
二、消息处理函数
/* This is where all the input to the window goes to */
LRESULT CALLBACK WndProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) {
switch(Message) {/* 分类处理捕获的消息 */case WM_NCCREATE:{MessageBox(NULL,"你正在创建窗口","警告",MB_OK);return DefWindowProc(hwnd, Message, wParam, lParam);break;}case WM_CREATE:{			MessageBox(NULL,"你已创建窗口","警告",MB_OK);return DefWindowProc(hwnd, Message, wParam, lParam);			break;}case WM_DESTROY: {MessageBox(NULL,"你已关闭窗口","警告",MB_OK);			PostQuitMessage(0);			break;		}case WM_CLOSE:{//return 0;/*禁止关闭可直接返回0*/MessageBox(NULL,"你正在关闭当前窗口","警告",MB_OK);return DefWindowProc(hwnd, Message, wParam, lParam);			break;}/* 所有其他信息的处理调用默认处理函数 */default:return DefWindowProc(hwnd, Message, wParam, lParam);}return 0;
}
三、通用窗口消息


WM_NULL:--------->空消息,可检测程序是否有响应等
WM_CREATE:--------->新建一个窗口
WM_DESTROY:--------->销毁一个窗口
WM_MOVE:--------->移动一个窗口
WM_SIZE:--------->改变一个窗口的大小
WM_ACTIVATE:--------->一个窗口被激活或失去激活状态
WM_SETFOCUS:--------->将焦点转向一个窗口
WM_KILLFOCUS:--------->使一个窗口失去焦点
WM_ENABLE:--------->使一个窗口处于可用状态
WM_SETREDRAW:--------->设置窗口是否能重绘
WM_SETTEXT:--------->设置一个窗口的文本
WM_GETTEXT:--------->复制窗口的文本到缓冲区
WM_GETTEXTLENGTH:--------->得到窗口的文本长度(不含结束符)
WM_PAINT:--------->窗口重绘
WM_CLOSE:--------->用户关闭窗口时会发送本消息,紧接着会发送WM_DESTROY消息
WM_QUERYENDSESSION:--------->关机或注销时系统会按优先级给各进程发送WM_QUERYENDSESSION,告诉应用程序要关机或注销了
WM_QUIT:--------->关闭消息循环结束程序的运行
WM_QUERYOPEN:--------->最小化的窗口即将被恢复以前的大小位置
WM_ERASEBKGND:--------->当一个窗口的背景必须被擦除时本消息会被触发(如:窗口大小改变时)
WM_SYSCOLORCHANGE:--------->当系统颜色改变时,发送本消息给所有顶级窗口
WM_ENDSESSION:--------->关机或注销时系统会发出WM_QUERYENDSESSION消息,然后将本消息发送给应用程序,通知程序会话结束
WM_SHOWWINDOW:--------->发送本消息给一个窗口,以便隐藏或显示该窗口
WM_WININICHANGE:--------->读写\"win.ini\"时会发送本消息给所有顶层窗口,通知其它进程该文件已被更改
WM_DEVMODECHANGE:--------->改变设备模式设置(\"win.ini\")时,处理本消息的应用程序可重新初始化它们的设备模式设置
WM_ACTIVATEAPP:--------->窗口进程激活状态改动,正被激活的窗口属于不同的应用程序 //??
WM_FONTCHANGE:--------->当系统的字体资源库变化时发送本消息给所有顶级窗口
WM_TIMECHANGE:--------->当系统的时间变化时发送本消息给所有顶级窗口
WM_CANCELMODE:--------->发送本消息来取消某种正在进行的模态(操作)(如鼠示捕获),例如:启动一个模态窗口时,父窗会收到本消息;该消息无参数
WM_SETCURSOR:--------->若鼠标光标在某窗口内移动且鼠标没被捕获时,就会发送本消息给某个窗口
WM_MOUSEACTIVATE:--------->当鼠标光标在某个未激活窗口内,而用户正按着鼠标的某个键时,会发送本消息给当前窗口
WM_CHILDACTIVATE:--------->点击窗口标题栏或当窗口被激活、移动、大小改变时,会发送本消息给MDI子窗口
WM_QUEUESYNC:--------->本消息由基于计算机的训练程序发送,通过WH_JOURNALPALYBACK的HOOK程序分离出用户输入消息
WM_GETMINMAXINFO:--------->当窗口将要改变大小或位置时,由系统发送本消息给窗口,用户拖动一个可重置大小的窗口时便会发出本消息
WM_PAINTICON:--------->当一个最小化的窗口图标将被重绘时发送本消息
WM_ICONERASEBKGND:--------->本消息发送给某个最小化的窗口,仅当它在画图标前它的背景必须被重画
WM_NEXTDLGCTL:--------->发送本消息给一个对话框程序窗口过程,以便在各控件间设置键盘焦点位置
WM_SPOOLERSTATUS:--------->每当打印管理列队增加或减少一条作业时就会发出本消息
WM_DRAWITEM:--------->按钮、组合框、列表框、菜单的外观改变时会发送本消息给这些控件的所有者
WM_MEASUREITEM:--------->按钮、组合框、列表框、列表控件、菜单项被创建时会发送本消息给这些控件的所有者
WM_DELETEITEM:--------->当列表框或组合框被销毁或通过LB_DELETESTRING、LB_RESETCONTENT、CB_DELETESTRING或CB_RESETCONTENT消息删除某些项时,会发送本消息给这些控件的所有者
WM_VKEYTOITEM:--------->LBS_WANTKEYBOARDINPUT风格的列表框会发出本消息给其所有者,以便响应WM_KEYDOWN消息
WM_CHARTOITEM:--------->LBS_WANTKEYBOARDINPUT风格的列表框会发送本消息给其所有者,以便响应WM_CHAR消息
WM_SETFONT:--------->指定控件所用字体
WM_GETFONT:--------->得到当前控件绘制其文本所用的字体
WM_SETHOTKEY:--------->为某窗口关联一个热键
WM_GETHOTKEY:--------->确定某热键与某窗口是否相关联
WM_QUERYDRAGICON:--------->本消息发送给最小化的窗口(iconic),当该窗口将被拖放而其窗口类中没有定义图标,应用程序能返回一个图标或光标的句柄。当用户拖放图标时系统会显示这个图标或光标
WM_COMPAREITEM:--------->可发送本消息来确定组合框(CBS_SORT)或列表框(LBS_SORT)中新增项的相对位置
WM_GETOBJECT:--------->\"oleacc.dll\"(COM组件)(Microsoft Active Accessibility:方便残疾人使用电脑的一种技术)发送本消息激活服务程序以便获取它所包含的关联对象的信息
WM_COMPACTING:--------->显示内存已经很少了
WM_COMMNOTIFY:--------->Win3.1中,当串口事件产生时,通讯设备驱动程序发送消息本消息给系统,指示输入输出队列的状态
WM_WINDOWPOSCHANGING:--------->本消息会发送给那些大小和位置(Z_Order)将被改变的窗口,以调用SetWindowPos函数或其它窗口管理函数
WM_WINDOWPOSCHANGED:--------->本消息会发送给那些大小和位置(Z_Order)已被改变的窗口,以调用SetWindowPos函数或其它窗口管理函数
WM_POWER:--------->当系统将要进入暂停状态时发送本消息(适用于16位的windows)
WM_COPYDATA:--------->当一个应用程序传递数据给另一个应用程序时发送本消息
WM_CANCELJOURNAL:--------->当用户取消程序日志激活状态时,发送本消息给那个应用程序。该消息使用空窗口句柄发送
WM_NOTIFY:--------->当某控件的某事件已发生或该控件需得到一些信息时,发送本消息给其父窗
WM_INPUTLANGCHANGEREQUEST:--------->当用户通过过单击任务栏上的语言指示符或某快捷键组合选择改变输入法时系统会向焦点窗口发送本消息
WM_INPUTLANGCHANGE:--------->切换输入法后,系统会发送本消息给受影响的顶层窗口
WM_TCARD:--------->程序已初始化windows帮助例程时会发送本消息给应用程序
WM_HELP:--------->按下<F1>后,若某菜单是激活的,就发送本消息给此窗口关联的菜单;否则就发送给有焦点的窗口;若当前都没有焦点,就把本消息发送给当前激活的窗口
WM_USERCHANGED:--------->当用户已登入或退出后发送本消息给所有窗口;当用户登入或退出时系统更新用户的具体设置信息,在用户更新设置时系统马上发送本消息
WM_NOTIFYFORMAT:--------->公用控件、自定义控件和其父窗通过本消息判断控件在WM_NOTIFY通知消息中是使用ANSI还是UNICODE,使用本消息能使某个控件与它的父控件间进行相互通信
WM_CONTEXTMENU:--------->当用户在某窗口中点击右键就发送本消息给该窗口,设置右键菜单
WM_STYLECHANGING:--------->当调用SetWindowLong函数将要改变一个或多个窗口的风格时,发送本消息给那个窗口
WM_STYLECHANGED:--------->当调用SetWindowLong函数改变一个或多个窗口的风格后,发送本消息给那个窗口
WM_DISPLAYCHANGE:--------->当显示器的分辨率改变后,发送本消息给所有窗口
WM_GETICON:--------->本消息发送给某个窗口,用于返回与某窗口有关联的大图标或小图标的句柄
WM_SETICON:--------->应用程序发送本消息让一个新的大图标或小图标与某窗口相关联
WM_NCCREATE:--------->当某窗口首次被创建时,本消息在WM_CREATE消息发送前发送
WM_NCDESTROY:--------->本消息通知某窗口,非客户区正在销毁
WM_NCCALCSIZE:--------->当某窗口的客户区的大小和位置须被计算时发送本消息
WM_NCHITTEST:--------->当用户在在非客户区移动鼠标、按住或释放鼠标时发送本消息(击中测试);若鼠标没有被捕获,则本消息在窗口得到光标之后发出,否则消息发送到捕获到鼠标的窗口
WM_NCPAINT:--------->当窗口框架(非客户区)必须被被重绘时,应用程序发送本消息给该窗口
WM_NCACTIVATE:--------->本消息发送给某窗口,在窗口的非客户区被激活时重绘窗口
WM_GETDLGCODE:--------->发送本消息给某个与对话框程序关联的控件,系统控制方位键和TAB键使输入进入该控件,通过响应本消息应用程序可把它当成一个特殊的输入控件并能处理它
WM_SYNCPAINT:--------->当避免联系独立的GUI线程时,本消息用于同步刷新,本消息由系统确定是否发送
WM_NCMOUSEMOVE:--------->当光标在某窗口的非客户区内移动时,发送本消息给该窗口
WM_NCLBUTTONDOWN:--------->当光标在某窗口的非客户区内的同时按下鼠标左键,会发送本消息
WM_NCLBUTTONUP:--------->当用户释放鼠标左键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCLBUTTONDBLCLK:--------->当用户双击鼠标左键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCRBUTTONDOWN:--------->当用户按下鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCRBUTTONUP:--------->当用户释放鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCRBUTTONDBLCLK:--------->当用户双击鼠标右键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCMBUTTONDOWN:--------->当用户按下鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCMBUTTONUP:--------->当用户释放鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息
WM_NCMBUTTONDBLCLK:--------->当用户双击鼠标中键的同时光标在某窗口的非客户区内时,会发送本消息

四、其他消息
1.滚动条消息


SBM_SETPOS:--------->设置滚动条上滑块的位置
SBM_GETPOS:--------->获取滚动条上滑块的位置
SBM_SETRANGE:--------->设置滚动条的最大与最小位置值
SBM_SETRANGEREDRAW:--------->设置滚动条的最大与最小位置值,并重绘滚动条
SBM_GETRANGE:--------->获取滚动条的最大与最小位置值
SBM_ENABLE_ARROWS:--------->设置滚动条的最大与最小位置值,并重绘滚动条
SBM_SETSCROLLINFO:--------->设置滚动条的参数,本消息通过SCROLLINFO结构指定多种参数,具体指定哪些参数由结构中的fMask成员确定
SBM_GETSCROLLINFO:--------->获取滚动条的参数,发送本消息后,将在SCROLLINFO结构中返回控件的多种参数,当然须事先设定结构的fMask成员以确定具体要取得哪些参数

2.按钮控件消息


BM_GETCHECK:--------->获取单选按钮或复选框的状态
BM_SETCHECK:--------->设置单选按钮或复选框的状态
BM_GETSTATE:--------->确定单选按钮或复选框的状态
BM_SETSTATE:--------->改变按钮的高亮状态
BM_SETSTYLE:--------->改变按钮的风格
BM_CLICK:--------->模拟用户点击按钮
BM_GETIMAGE:--------->获取与按钮相关联的图片句柄(图标或位图)
BM_SETIMAGE:--------->把按钮与某张图片相关联(图标或位图),注:按钮须有BS_ICON风格

3.按钮控件通知消息


BN_CLICKED:--------->用户单击了按钮,父窗通过WM_COMMAND来接收本通知消息
BN_DBLCLK:--------->用户双击了按钮(BS_OWNERDRAW或BS_RADIOBUTTON风格),父窗通过WM_COMMAND来接收本通知消息
BN_DISABLE:--------->按钮被禁止,父窗通过WM_COMMAND来接收本通知消息
BN_DOUBLECLICKED:--------->用户双击了按钮(与BN_DBLCLK同)(BS_OWNERDRAW或BS_RADIOBUTTON风格),父窗通过WM_COMMAND来接收本通知消息
BN_HILITE:--------->用户选择(即加亮)了按钮(与BN_PUSHED相同),父窗通过WM_COMMAND来接收本通知消息
BN_KILLFOCUS:--------->按钮失去了键盘焦点(按钮须有BS_NOTIFY风格才能发送本消息),父窗通过WM_COMMAND来接收本通知消息
BN_PAINT:--------->按钮应当重绘,父窗通过WM_COMMAND来接收本通知消息
BN_PUSHED:--------->用户加亮了按钮(与BN_HILITE相同),父窗通过WM_COMMAND来接收本通知消息
BN_SETFOCUS:--------->按钮收到键盘焦点(按钮须有BS_NOTIFY风格才能发送本消息),父窗通过WM_COMMAND息来接收本通知消息
BN_UNHILITE:--------->按钮的加亮应当去掉(与BN_UNPUSHED相同),父窗通过WM_COMMAND来接收本通知消息
BN_UNPUSHED:--------->按钮的加亮应当去掉(与BN_UNHILITE相同),父窗通过WM_COMMAND来接收本通知消息

4.按键消息


WM_KEYFIRST:--------->用于WinCE系统,本消息在使用GetMessage和PeekMessage函数时,用于过滤键盘消息
WM_KEYDOWN:--------->当一个非系统按键被按下时(<ALT>键没有被按下),会发送本消息给拥有键盘焦点的窗口
WM_KEYUP:--------->当一个非系统按键被释放弹起时(<ALT>键没有被按下),会发送本消息给拥有键盘焦点的窗口
WM_CHAR:--------->按下某按键,并已发出WM_KEYDOWN、WM_KEYUP消息,本消息包含被按下的按键的字符码
WM_DEADCHAR:--------->\"死字符\"消息,当使用TranslateMessage函数翻译WM_KEYUP消息时,发送本消息给拥有键盘焦点的窗口,注:德语键盘上,有些按键只是给字符添加音标的,并不产生字符,故称\"死字符\"
WM_SYSKEYDOWN:--------->当用户按住<ALT>键的同时又按下其它键时,发送本消息给拥有焦点的窗口
WM_SYSKEYUP:--------->当用户释放一个按键的同时<ALT>键还按着时,发送本消息给拥有焦点的窗口
WM_SYSCHAR:--------->当WM_SYSKEYDOWN消息被TranslateMessage函数翻译后,发送本消息给拥有焦点的窗口,注:<ALT>键被按下
WM_SYSDEADCHAR:--------->\"死字符\"消息,当使用TranslateMessage函数翻译WM_SYSKEYDOWN消息时,发送本消息给拥有键盘焦点的窗口,注:德语键盘上,有些按键只是给字符添加音标的,并不产生字符,故称\"死字符\"
WM_KEYLAST:--------->用于WinCE系统,本消息在使用GetMessage和PeekMessage函数时,用于过滤键盘消息
WM_IME_STARTCOMPOSITION:--------->当用户开始输入编码时,系统立即发送该消息到IME中,IME打开编码窗口,注:输入法相关
WM_IME_ENDCOMPOSITION:--------->当编码结束时,IME发送本消息,用户程序可接受本消息,以便自己显示用户输入的编码,注:输入法相关
WM_IME_COMPOSITION:--------->当用户改变了编码状态时,发送本消息,应用程序可通过调用ImmGetCompositionString函数获取新的编码状态
WM_IME_KEYLAST:--------->当用户改变了编码状态时,发送本消息,应用程序可通过调用ImmGetCompositionString函数获取新的编码状态

5.系统菜单等消息


WM_INITDIALOG:--------->在某对话框程序被显示前发送本消息给该对话框程序,通常用本消息对控件进行一些初始化工作和执行其它任务

WM_COMMAND:--------->用户选择一条菜单命令项或某控件发送一条通知消息给其父窗,或某快捷键被翻译时,本消息被发送
WM_SYSCOMMAND:--------->当用户选择一条系统菜单命令、用户最大化或最小化或还原或关闭时,窗口会收到本消息
WM_TIMER:--------->发生了定时器事件
WM_HSCROLL:--------->当窗口的标准水平滚动条产生一个滚动事件时,发送本消息给该窗口
WM_VSCROLL:--------->当窗口的标准垂直滚动条产生一个滚动事件时,发送本消息给该窗口
WM_INITMENU:--------->当一个菜单将被激活时发送本消息,它发生在用户点击了某菜单项或按下某菜单键。它允许程序在显示前更改菜单
WM_INITMENUPOPUP:--------->当一个下拉菜单或子菜单将被激活时发送本消息,它允许程序在它显示前更改菜单,却不更改全部菜单
WM_SYSTIMER:--------->系统用来通知光标跳动的一个消息
WM_MENUSELECT:--------->当用户选择一条菜单项时,发送本消息给菜单的所有者(一般是窗口)
WM_MENUCHAR:--------->当菜单已被激活且用户按下了某菜单字符键(菜单字符键用括号括着、带下划线,不同于快捷键),发送本消息给菜单的所有者
WM_ENTERIDLE:--------->当一个模态对话框或菜单进入空闲状态时,发送本消息给它的所有者,一个模态对话框或菜单进入空闲状态就是在处理完一条或几条先前的消息后,没有消息在消息列队中等待
WM_MENURBUTTONUP:--------->本消息允许程序为菜单项提供一个感知上下文的菜单(即快捷菜单),要为菜单项显示一下上下文菜单,请使用TPM_RECURSE标识调用TrackPopupMenuEx函数
WM_MENUDRAG:--------->当用户拖动菜单项时,发送本消息给拖放菜单的拥有者,可让菜单支持拖拽,可使用OLE拖放传输协议启动拖放操作,注:菜单要具有MNS_DRAGDROP风格
WM_MENUGETOBJECT:--------->当鼠标光标进入或离开菜单项时,本消息发送给支持拖放的菜单的拥有者,相关结构体:MENUGETOBJECTINFO,注:菜单要具有MNS_DRAGDROP风格
WM_UNINITMENUPOPUP:--------->当一条下拉菜单或子菜单被销毁时,发送本消息
WM_MENUCOMMAND:--------->当用户在一个菜单上作出选择时,会发送本消息,菜单要具有MNS_NOTIFYBYPOS风格(在MENUINFO结构体中设置)
WM_CTLCOLORMSGBOX:--------->系统绘制消息框前发送本消息给消息框的所有者窗口,通过响应本消息,所有者窗口可通过使用给定的相关显示设备的句柄来设置消息框的文本和背景色
WM_CTLCOLOREDIT:--------->当一个编辑框控件将要被绘制时,发送本消息给其父窗;通过响应本消息,所有者窗口可通过使用给定的相关显示设备的句柄来设置编辑框的文本和背景色
WM_CTLCOLORLISTBOX:--------->当一个列表框控件将要被绘制前,发送本消息给其父窗;通过响应本消息,所有者窗口可通过使用给定的相关显示设备的句柄来设置列表框的文本和背景色
WM_CTLCOLORBTN:--------->设置按钮的背景色
WM_CTLCOLORDLG:--------->设置对话框的背景色,通常是在WinnApp中使用SetDialogBkColor函数实现
WM_CTLCOLORSCROLLBAR:--------->设置滚动条的背景色
WM_CTLCOLORSTATIC:--------->设置一个静态控件的背景色

6.组合框控件消息


CB_GETEDITSEL:--------->用于取得组合框所包含编辑框子控件中当前被选中的字符串的起止位置,对应函数:GetEditSel
CB_LIMITTEXT:--------->用于限制组合框所包含编辑框子控件输入文本的长度
CB_SETEDITSEL:--------->用于选中组合框所包含编辑框子控件中的部分字符串,对应函数:GetEditSel
CB_ADDSTRING:--------->用于向组合框控件追加一个列表项(字符串)
CB_DELETESTRING:--------->用于删除组合框中指定的列表项(字符串)
CB_DIR:--------->用于向组合框控件所包含的列表框控件中添加一个文件名列表清单
CB_GETCOUNT:--------->用于返回组合框控件中列表项的总项数
CB_GETCURSEL:--------->用于返回当前被选择项的索引
CB_GETLBTEXT:--------->获取组合框控件中指定列表项的字符串
CB_GETLBTEXTLEN:--------->用于返回组合框控件中指定列表项的字符串的长度(不包括结束符0)
CB_INSERTSTRING:--------->在组合框控件所包含的列表框子控件中的指定位置插入字符串
CB_RESETCONTENT:--------->用于清除组合框控件所有列表项
CB_FINDSTRING:--------->在组合框控件中根据给定的字符串查找匹配字符串(忽略大小写)
CB_SELECTSTRING:--------->在组合框控件中设定与指定字符串相匹配的列表项为选中项
CB_SETCURSEL:--------->在组合框控件中设置指定的列表项为当前选择项
CB_SHOWDROPDOWN:--------->用于显示或关闭下拉式和下拉列表式组合框的列表框
CB_GETITEMDATA:--------->组合框控件每个列表项都有一个32位的附加数据,本消息用于返回指定列表项的附加数据
CB_SETITEMDATA:--------->用于更新组合框所包含的列表框所指定的列表项的32位附加数据
CB_GETDROPPEDCONTROLRECT:--------->用于取组合框中列表框的屏幕位置
CB_SETITEMHEIGHT:--------->指定组合框中列表项的显示高度(像素点)
CB_GETITEMHEIGHT:--------->用于返回指定列表项的高度(像素点)
CB_SETEXTENDEDUI:--------->指定下拉式或下拉列表式组合框是使用默认界面还是扩展界面
CB_GETEXTENDEDUI:--------->用于返回组合框是否存在扩展界面
CB_GETDROPPEDSTATE:--------->用于取组合框中列表框是否可见
CB_FINDSTRINGEXACT:--------->在组合框中查找字符串,忽略大小写,与CB_FINDSTRING不同,本消息必须整个字符串相同
CB_SETLOCALE:--------->设置组合框列表项当前用于排序的语言代码
CB_GETLOCALE:--------->获取组合框列表项当前用于排序的语言代码
CB_GETTOPINDEX:--------->获取组合框中列表框中第一个可见项的索引
CB_SETTOPINDEX:--------->用于将指定的组合框中列表项设置为列表框的第一个可见项
CB_GETHORIZONTALEXTENT:--------->用于返回组合框水平滚动的总宽度(像素点)(要具有水平滚动条)
CB_SETHORIZONTALEXTENT:--------->用于设定组合框中的列表框的宽度
CB_GETDROPPEDWIDTH:--------->取组合框中列表框的宽度(像素点)
CB_SETDROPPEDWIDTH:--------->用于设定组合框中的列表框的最大允许宽度
CB_INITSTORAGE:--------->只适用于Win95,当将要向组合框中列表框中加入大量表项时,本消息将预先分配一块内存,以免大量添加表项多次分配内存,从而加快程序运行速度
CB_MSGMAX:--------->该消息还具有三个消息值:0x0162,0x0163,0x0165,消息含义不明,搜索了整个Visual Studio 6的目录也只有其定义,却未见其使用的相关代码

7.组合框控件通知消息


CBN_CLOSEUP:--------->通知父窗(通过WM_COMMAND获知),组合框的列表框被关闭
CBN_DBLCLK:--------->通知父窗(通过WM_COMMAND获知),用户双击了组合框中的一个字符串
CBN_DROPDOWN:--------->通知父窗(通过WM_COMMAND获知),组合框的列表框被弹出
CBN_EDITCHANGE:--------->通知父窗(通过WM_COMMAND获知),用户修改了组合框所含编辑框中的文本
CBN_EDITUPDATE:--------->通知父窗(通过WM_COMMAND获知),组合框所含编辑框内的文本即将更新
CBN_ERRSPACE:--------->通知父窗(通过WM_COMMAND获知),组合框内存不足
CBN_KILLFOCUS:--------->通知父窗(通过WM_COMMAND获知),组合框失去输入焦点
CBN_SELCHANGE:--------->通知父窗(通过WM_COMMAND获知),选择了组合框中的一项
CBN_SELENDCANCEL:--------->通知父窗(通过WM_COMMAND获知),用户对组合框的选择应当被取消
CBN_SELENDOK:--------->通知父窗(通过WM_COMMAND获知),用户对组合框的选择是合法的
CBN_SETFOCUS:--------->通知父窗(通过WM_COMMAND获知),组合框获得输入焦点

8.列表框控件消息


LB_ADDSTRING:--------->向列表框中添加字符串
LB_INSERTSTRING:--------->向列表框中插入一个条目数据或字符串。不像LB_ADDSTRING消息,该消息不会激活LBS_SORT样式来对条目进行排序
LB_DELETESTRING:--------->删除列表框中的一个字符串
LB_SELITEMRANGEEX:--------->在多选状态下的列表框中选择一个或多个连续的条目
LB_RESETCONTENT:--------->清除列表框中所有列表项
LB_SETSEL:--------->在多选状态下的列表框中选择一个字符串
LB_SETCURSEL:--------->在列表框中选择一个字符串,并将其所在的条目滚动到视野内,并高亮新选中的字符串
LB_GETSEL:--------->获得列表框中一个条目的选择状态
LB_GETCURSEL:--------->获得列表框中当前被选条目的索引。仅在单选状态的列表框有效
LB_GETTEXT:--------->从列表框中获得一个字符串
LB_GETTEXTLEN:--------->获得一个列表框中字符串的长度
LB_GETCOUNT:--------->获得列表框中条目的数量
LB_SELECTSTRING:--------->仅适用于单选择列表框,设定与指定字符串相匹配的列表项为选中项,会滚动列表框以使选择项可见
LB_DIR:--------->在列表框中列出文件名
LB_GETTOPINDEX:--------->返回列表框中第一个可见项的索引
LB_FINDSTRING:--------->在列表框中查找匹配字符串(忽略大小写)
LB_GETSELCOUNT:--------->仅用于多重选择列表框,本消息用于返回选择项的数目
LB_GETSELITEMS:--------->仅用于多重选择列表框,本消息用于获得选中项的数目及位置
LB_SETTABSTOPS:--------->设置列表框的光标(输入焦点)站数及索引顺序表
LB_GETHORIZONTALEXTENT:--------->返回列表框的可滚动的宽度(像素点)
LB_SETHORIZONTALEXTENT:--------->本消息设置列表框的滚动宽度
LB_SETCOLUMNWIDTH:--------->为列表框指定列数
LB_ADDFILE:--------->为列表框增加文件名
LB_SETTOPINDEX:--------->用于列表框将中指定的列表项设置为列表框的第一个可见项,会将列表框滚动到合适的位置
LB_GETITEMRECT:--------->用于列表框中获得列表项的客户区的RECT
LB_GETITEMDATA:--------->列表框中每个列表项都有个32位附加数据,本消息用于返回指定列表项的附加数据
LB_SETITEMDATA:--------->用于更新列表框中指定列表项的32位附加数据
LB_SELITEMRANGE:--------->仅用于多重选择列表框,用来使指定范围内的列表项选中或落选
LB_SETANCHORINDEX:--------->用于列表框中设置鼠标最后选中的表项成指定表项
LB_GETANCHORINDEX:--------->用于列表框中鼠标最后选中的项的索引
LB_SETCARETINDEX:--------->用于列表框中设置键盘输入焦点到指定表项
LB_GETCARETINDEX:--------->用于列表框中返回具有矩形焦点的项目索引
LB_SETITEMHEIGHT:--------->用于列表框中指定列表项显示高度
LB_GETITEMHEIGHT:--------->用于列表框中返回列表框中某一项的高度(像素点)
LB_FINDSTRINGEXACT:--------->用于列表框中查找字符串(忽略大小写),与LB_FINDSTRING不同,本消息必须整个字符串相同
LB_SETLOCALE:--------->用于列表框中设置列表项当前用于排序的语言代码,当用户使用LB_ADDSTRING向组合框中的列表框中添加记录,并使用LBS_SORT风格进行重新排序时,必须使用该语言代码
LB_GETLOCALE:--------->用于列表框中获取列表项当前用于排序的语言代码,当用户使用LB_ADDSTRING向组合框中的列表框中添加记录,并使用LBS_SORT风格进行重新排序时,必须使用该语言代码
LB_SETCOUNT:--------->用于列表框中设置表项数目
LB_INITSTORAGE:--------->只适用于Win95版本,当将要向列表框中加入大量表项时,本消息将预先分配一块内存,以免在以后的操作中一次次分配内存
LB_ITEMFROMPOINT:--------->用于列表框中获得与指定点最近的项目索引
LB_MSGMAX:--------->该消息还具有三个消息值:0x01B0,0x01B1,0x01B3,,消息含义不明,搜索了整个Visual Studio 6的目录也只有其定义,却未见其使用的相关代码

9.列表框控件通知消息


LBN_DBLCLK:--------->通知父窗(通过WM_COMMAND获知),用户双击了列表框中的一项
LBN_ERRSPACE:--------->通知父窗(通过WM_COMMAND获知),列表框内存不够
LBN_KILLFOCUS:--------->通知父窗(通过WM_COMMAND获知),列表框正在失去输入焦点
LBN_SELCANCEL:--------->通知父窗(通过WM_COMMAND获知),选择被取消
LBN_SELCHANGE:--------->通知父窗(通过WM_COMMAND获知),选择了列表框中的另一项
LBN_SETFOCUS:--------->通知父窗(通过WM_COMMAND获知),列表框获得输入焦点

10.鼠标消息

WM_MOUSEFIRST:--------->鼠标移动时发生(与WM_MOUSEMOVE等值),常用于判断鼠标消息的范围,比如:if(message >= WM_MOUSEFIRST)&&(message <= WM_MOUSELAST)
WM_MOUSEMOVE:--------->移动鼠标
WM_LBUTTONDOWN:--------->按下鼠标左键
WM_LBUTTONUP:--------->释放鼠标左键
WM_LBUTTONDBLCLK:--------->双击鼠标左键
WM_RBUTTONDOWN:--------->按下鼠标右键
WM_RBUTTONUP:--------->释放鼠标右键
WM_RBUTTONDBLCLK:--------->双击鼠标右键
WM_MBUTTONDOWN:--------->按下鼠标中键
WM_MBUTTONUP:--------->释放鼠标中键
WM_MBUTTONDBLCLK:--------->双击鼠标中键

WM_MOUSEHOVER:--------->鼠标移过控件时,触发发送本消息
WM_MOUSELEAVE:--------->鼠标离开控件时,触发发送本消息
WM_MOUSEWHEEL:--------->当鼠标轮子转动时,发送本消息给当前拥有焦点的控件
WM_MOUSELAST:--------->WM_MBUTTONDBLCLK的别名,通常用于判断鼠标消息的范围,对应的还有WM_MOUSEFIRST,例如:if(message > =  WM_MOUSEFIRST)&&(message <= WM_MOUSELAST)

11.窗口相关消息


WM_PARENTNOTIFY:--------->当MDI子窗口被创建或被销毁,或用户按了一下鼠标键而光标在子窗口上时,发送本消息给其父窗
WM_ENTERMENULOOP:--------->发送本消息通知应用程序的主窗口已进入菜单循环模式
WM_EXITMENULOOP:--------->发送本消息通知应用程序的主窗口已退出菜单循环模式
WM_NEXTMENU:--------->当使用左箭头光标键或右箭头光标键在菜单条与系统菜单之间切换时,会发送本消息给应用程序,相关结构体:MDINEXTMENU
WM_SIZING:--------->当用户正在调整窗口大小时,发送本消息给窗口;通过本消息应用程序可监视窗口大小和位置,也可修改它们
WM_CAPTURECHANGED:--------->当它失去捕获的鼠标时,发送本消息给窗口
WM_MOVING:--------->当用户在移动窗口时发送本消息,通过本消息应用程序以监视窗口大小和位置,也可修改它们
WM_POWERBROADCAST:--------->本消息发送给应用程序来通知它有关电源管理事件,比如待机休眠时会发送本消息
WM_DEVICECHANGE:--------->当设备的硬件配置改变时,发送本消息给应用程序或设备驱动程序
WM_MDICREATE:--------->发送本消息给多文档应用程序的客户窗口来创建一个MDI子窗口
WM_MDIDESTROY:--------->发送本消息给多文档应用程序的客户窗口来关闭一个MDI子窗口
WM_MDIACTIVATE:--------->发送本消息给多文档应用程序的客户窗口通知客户窗口激活另一个MDI子窗口,当客户窗口收到本消息后,它发出WM_MDIACTIVE消息给MDI子窗口(未激活)来激活它
WM_MDIRESTORE:--------->发送本消息给MDI客户窗口,让子窗口从最大最小化恢复到原来的大小
WM_MDINEXT:--------->发送本消息给MDI客户窗口,激活下一个或前一个窗口
WM_MDIMAXIMIZE:--------->发送本消息给MDI客户窗口来最大化一个MDI子窗口
WM_MDITILE:--------->发送本消息给MDI客户窗口,以平铺方式重新排列所有MDI子窗口
WM_MDICASCADE:--------->发送本消息给MDI客户窗口,以层叠方式重新排列所有MDI子窗口
WM_MDIICONARRANGE:--------->发送本消息给MDI客户窗口重新排列所有最小化的MDI子窗口
WM_MDIGETACTIVE:--------->发送本消息给MDI客户窗口以找到激活的子窗口句柄
WM_MDISETMENU:--------->发送本消息给MDI客户窗口,用MDI菜单代替子窗口的菜单
WM_ENTERSIZEMOVE:--------->当某窗口进入移动或调整大小的模式循环时,本消息发送到该窗口
WM_EXITSIZEMOVE:--------->确定用户改变窗口大小或改变窗口位置的事件是何时完成的
WM_DROPFILES:--------->鼠标拖放时,放下事件产生时发送本消息,比如:文件拖放功能
WM_MDIREFRESHMENU:--------->发送本消息给多文档应用程序的客户窗口,根据当前MDI子窗口更新MDI框架窗口的菜单

12.输入法相关消息


WM_IME_SETCONTEXT:--------->应用程序的窗口激活时,系统将向应用程序发送WM_IME_SETCONTEXT消息,注:输入法相关
WM_IME_NOTIFY:--------->可使用WM_IME_NOTIFY消息来通知关于IME窗口状态的常规改变,注:输入法相关
WM_IME_CONTROL:--------->可使用WM_IME_CONTROL消息来改变字母组合窗口的位置,注:输入法相关
WM_IME_COMPOSITIONFULL:--------->用户接口窗口不能增加编码窗口的尺寸时,IME用户接口窗口将发送WM_IME_COMPOSITIONFULL消息,可不处理,注:输入法相关
WM_IME_SELECT:--------->系统发出WM_IME_SELECT以便选择一个新的IME输入法,注:输入法相关
WM_IME_CHAR:--------->当打开输入法输入文字时,会发送WM_IME_CHAR消息
WM_IME_REQUEST:--------->应用程序请求输入法时,触发发送本消息
WM_IME_KEYDOWN:--------->在输入法录字窗口中按下按键时,触发发送本消息
WM_IME_KEYUP:--------->在输入法录字窗口中释放按键时,触发发送本消息

13.剪贴板相关消息


WM_CUT:--------->应用程序发送本消息给一个编辑框或组合框来删除当前选择的文本
WM_COPY:--------->应用程序发送本消息给一个编辑框或组合框,以便用CF_TEXT格式复制当前选择的文本到剪贴板
WM_PASTE:--------->应用程序发送本消息给编辑框或组合框,以便从剪贴板中得到数据
WM_CLEAR:--------->应用程序发送本消息给编辑框或组合框,以清除当前选择的内容
WM_UNDO:--------->应用程序发送本消息给编辑框或组合框,以撤消最后一次操作
WM_RENDERFORMAT:--------->应用程序需要系统剪切板数据时,触发发送本消息
WM_RENDERALLFORMATS:--------->应用程序退出时在程序退出时,系统会给当前程序发送该消息,要求提供所有格式的剪帖板数据,避免造成数据丢失
WM_DESTROYCLIPBOARD:--------->当调用EmptyClipboard函数时,发送本消息给剪贴板的所有者
WM_DRAWCLIPBOARD:--------->当剪贴板的内容变化时,发送本消息给剪贴板观察链的首个窗口;它允许用剪贴板观察窗口来显示剪贴板的新内容
WM_PAINTCLIPBOARD:--------->当剪贴板包含CF_OWNERDIPLAY格式的数据,并且剪贴板观察窗口的客户区需要重画时,触发发送本消息
WM_VSCROLLCLIPBOARD:--------->当剪贴板查看器的垂直滚动条被单击时,触发发送本消息
WM_SIZECLIPBOARD:--------->当剪贴板包含CF_OWNERDIPLAY格式的数据,并且剪贴板观察窗口的客户区域的大小已改变时,本消息通过剪贴板观察窗口发送给剪贴板的所有者
WM_ASKCBFORMATNAME:--------->通过剪贴板观察窗口发送本消息给剪贴板的所有者,以请求一个CF_OWNERDISPLAY格式的剪贴板的名字
WM_CHANGECBCHAIN:--------->当一个窗口从剪贴板观察链中移去时,发送本消息给剪贴板观察链的首个窗口
WM_HSCROLLCLIPBOARD:--------->本消息通过一个剪贴板观察窗口发送给剪贴板的所有者,它发生在当剪贴板包含CFOWNERDISPALY格式的数据,并且有个事件在剪贴板观察窗的水平滚动条上,所有者应滚动剪贴板图像并更新滚动条的值

14.其他消息


WM_QUERYNEWPALETTE:--------->本消息发送给将要收到焦点的窗口,本消息能使窗口在收到焦点时同时有机会实现逻辑调色板
WM_PALETTEISCHANGING:--------->当一个应用程序正要实现它的逻辑调色板时,发本消息通知所有的应用程序
WM_PALETTECHANGED:--------->本消息在一个拥有焦点的窗口实现它的逻辑调色板后,发送本消息给所有顶级并重叠的窗口,以此来改变系统调色板
WM_HOTKEY:--------->当用户按下由RegisterHotKey函数注册的热键时,发送本消息
WM_PRINT:--------->发送本消息给一个窗口请求在指定的设备上下文中绘制自身,可用于窗口截图,但对子控件截图时得到的是与子控件等大的黑块
WM_PRINTCLIENT:--------->送本消息给一个窗口请求在指定的设备上下文中绘制其客户区(最通常是在一个打印机设备上下文中)
WM_HANDHELDFIRST:--------->消息含义未知,搜索了整个Visual Studio 6的目录也只有其定义,却未见其使用的相关代码
WM_HANDHELDLAST:--------->消息含义未知,搜索了整个Visual Studio 6的目录也只有其定义,却未见其使用的相关代码
WM_AFXFIRST:--------->指定首个AFX消息(MFC)
WM_QUERYAFXWNDPROC:--------->该消息被MFC内部用来确认窗口过程是否使用AfxWndProc
WM_SIZEPARENT:--------->MFC自定义的消息,MFC的主窗口框架布局是通过给子窗口发送响应WM_SIZEPARENT来完成的,框架窗口发送本消息用的是SendMessage,各个控制子窗口用OnSizeParent响应WM_SIZEPARENT消息
WM_IDLEUPDATECMDUI:--------->MFC自己定义和使用的消息,当应用程序进入空闲处理状态时,将发送本消息,导致所有工具栏用户对象的状态处理函数被调用,从而改变其状态,对应的消息响应函数为:OnIdleUpdateCmdUI
WM_INITIALUPDATE:--------->MFC发明的消息,用于处理菜单、快捷键,发送WM_INITIALUPDATE消息给所有子窗口,消息响应函数为:CView::OnInitialUpdate
WM_COMMANDHELP:--------->本消息用于实现MFC的上下文敏感帮助,按下<F1键>后消息被映射到CWinApp::OnHelp。该函数会向最外层框架窗口发送本消息,本消息响应过程是自顶向下的,对应的消息响应函数为:ON_WM_HELPINFO
WM_HELPHITTEST:--------->本消息用于实现MFC的上下文敏感帮助,本消息必须手工添加
WM_EXITHELPMODE:--------->本消息用于实现MFC的上下文敏感帮助,本消息必须手工添加
WM_RECALCPARENT:--------->MFC自己定义和使用的消息,对应的消息响应函数为:CMainFrame::OnReCalcParent,本消息由CView发送给CMainFrame框架窗口以便重新布置窗口
WM_SIZECHILD:--------->MFC自己定义和使用的消息,当用户重新调整COleResizeBar的大小时,由COleResizeBar发送给其所有者窗口:--------->,
WM_KICKIDLE:--------->本消息是MFC中对空闲进行处理的一个未公开的消息,消息泵并不处理WM_KICKIDLE消息,收到该消息后,直接返回,WM_KICKIDLE被用来刺激空闲处理的执行,它作为一个空消息促使::GetMessage()返回
WM_QUERYCENTERWND:--------->MFC内部保留的未公开消息,lParam:HWND to use as centering parent;
WM_DISABLEMODAL:--------->MFC内部保留的未公开消息,lResult = 0,disable during modal state;lResult = 1,don't disable
WM_FLOATSTATUS:--------->MFC内部保留的未公开消息,wParam combination of FS_* flags below
WM_ACTIVATETOPLEVEL:--------->MFC内部保留的未公开消息,wParam = nState(like WM_ACTIVATE);lParam = pointer to HWND[2];lParam[0] = hWnd getting WM_ACTIVATE;lParam[1] = 
hWndOther
WM_QUERY3DCONTROLS:--------->MFC内部保留的未公开消息,lResult != 0 if 3D controls wanted
WM_RESERVED_0370:--------->MFC内部保留的未公开、MFC自身也未使用的消息
WM_RESERVED_0371:--------->MFC内部保留的未公开、MFC自己也未使用的消息
WM_RESERVED_0372:--------->MFC内部保留的未公开、MFC自己也未使用的消息
WM_SOCKET_NOTIFY:--------->已在MSDN中公开的MFC内部消息,本消息告诉socket窗口socket事件已经发生(socket窗口:CSocketWnd,隐藏,接收本消息,响应:OnSocketNotify):--------->,
WM_SOCKET_DEAD:--------->MFC内部消息,MFC维护死套接字的映射,死套接字是个已关闭的套接字,参见sockcore.cpp
WM_SETMESSAGESTRING:--------->MFC内部消息,发送给框架窗口要求其更新状态栏字符串信息,微软MFC TN024文档中有该消息的描述,响应函数:OnSetMessageString
WM_POPMESSAGESTRING:--------->MFC内部消息,用来重新设置状态栏,对应的字符串是\"Ready\响应函数:OnPopMessageString
WM_HELPPROMPTADDR:--------->MFC内部消息,用来从相关联的框架窗口中检索m_dwPromptContext地址,注:<F1>上下文帮助相关
WM_OCC_LOADFROMSTREAM:--------->MFC内部消息,OCC即OLE control containers,参见相关LoadFromStream函数
WM_OCC_LOADFROMSTORAGE:--------->MFC内部消息,OCC即OLE control container,参见相关LoadFromStorage函数
WM_OCC_INITNEW:--------->MFC内部消息,OCC即OLE control container,参见相关InitNew函数
WM_OCC_LOADFROMSTREAM_EX:--------->MFC内部消息,OCC即OLE control container,参见相关LoadFromStreamEx函数
WM_OCC_LOADFROMSTORAGE_EX:--------->MFC内部消息,OCC即OLE control container,参见:ATLHOST.H/OCCMGR.CPP/WINCORE.CPP中相关代码
WM_QUEUE_SENTINEL:--------->MFC内部消息,用于重排消息队列,\"QUEUE SENTINEL\"意为消息哨兵
WM_RESERVED_037C:--------->MFC内部保留,供将来使用
WM_RESERVED_037D:--------->MFC内部保留,供将来使用
WM_RESERVED_037E:--------->MFC内部保留,供将来使用
WM_FORWARDMSG:--------->ATL中定义,让一个窗口接收的消息传递给另一个窗口进行处理
WM_AFXLAST:--------->指定末个afx消息
WM_PENWINFIRST:--------->指定首个Pen Window消息,参见:PENWIN.H/WINUSER.H
WM_PENWINLAST:--------->指定末个Pen Window消息,参见:PENWIN.H/WINUSER.H

相关文章:

【C++】<Windows编程中消息即事件的处理>

目录 一、注册窗口类&#xff0c;指定消息处理函数&#xff0c;捕获消息并发给处理函数 二、消息处理函数 三、通用窗口消息 四、其他消息 1.滚动条消息 2.按钮控件消息 3.按钮控件通知消息 4.按键消息 5.系统菜单等消息 6.组合框控件消息 7.组合框控件通知消息 8.列…...

数据库SQL语句使用

-- 查询所有数据库 show databases; -- 创建数据库&#xff0c;数据库名为mydatabase create database mydatabase; -- 如果没有名为 mydatabase的数据库则创建&#xff0c;有就不创建 create database if not exists mydatabase; -- 如果没有名为 mydatabase的数据库则创建…...

从零开始 Spring Cloud 12:Sentinel

从零开始 Spring Cloud 12&#xff1a;Sentinel 1.初识 Sentinel 1.1雪崩问题 1.1.1什么是雪崩问题 微服务中&#xff0c;服务间调用关系错综复杂&#xff0c;一个微服务往往依赖于多个其它微服务。 如图&#xff0c;如果服务提供者I发生了故障&#xff0c;当前的应用的部分…...

@Resurce和@Autowired的区别

Resource 和 Autowired 是 Java 中常用的两个注解&#xff0c;用于自动装配依赖对象。它们的主要区别如下&#xff1a; 来源不同&#xff1a; Resource 是 Java EE 提供的注解&#xff0c;属于 J2EE 的一部分&#xff0c;它由 JSR-250 规范定义。 Autowired 是 Spring 框架提供…...

ResNet简介

ResNet (Residual Network) 此网络于2015年&#xff0c;国人何先生提出&#xff0c;用于解决随着深度学习的层数加深造成的网络退化现象和梯度消失、梯度爆炸。 问题1 退化现象 当深度学习的各项指标能够随着训练轮数收敛的情况下&#xff0c;网络的层数增强未能像理论一样&…...

了解单例模式,工厂模式(简单易懂)

文章目录 单例模式饿汉模式懒汉模式对比 工厂模式简单工厂模式&#xff08;Simple Factory Pattern&#xff09;工厂方法模式&#xff08;Factory Method Pattern&#xff09;抽象工厂模式&#xff08;Abstract Factory Pattern&#xff09;对比 单例模式 什么是单例&#xff…...

【中危】 Apache NiFi 连接 URL 验证绕过漏洞 (CVE-2023-40037)

漏洞描述 Apache NiFi 是一个开源的数据流处理和自动化工具。 在受影响版本中&#xff0c;由于多个Processors和Controller Services在配置JDBC和JNDI JMS连接时对URL参数过滤不完全。使用startsWith方法过滤用户输入URL&#xff0c;导致过滤可以被绕过。攻击者可以通过构造特…...

【Git版本控制工具使用---讲解一】

Git版本控制工具使用 安装设置用户名签名和邮箱Git常用的命令 初始化本地库查看本地状态Git 命令添加暂存区提交本地库查看版本信息修改文件版本穿梭 安装 首先根据自身电脑的配置选择性的安装是32位的还是64位的Git版本控制工具 我这边安装的是64位的 以下是我安装的时候的过…...

NLP | 基于LLMs的文本分类任务

比赛链接&#xff1a;讯飞开放平台 来源&#xff1a;DataWhale AI夏令营3&#xff08;NLP&#xff09; Roberta-base&#xff08;BERT的改进&#xff09; ①Roberta在预训练的阶段中没有对下一句话进行预测&#xff08;NSP&#xff09; ②采用了动态掩码 ③使用字符级和词级…...

攻防世界-base÷4

原题 解题思路 base644&#xff0c;莫不是base16&#xff0c;base16解码网站&#xff1a; 千千秀字...

【Java转Go】快速上手学习笔记(三)之基础篇二

【Java转Go】快速上手学习笔记&#xff08;二&#xff09;之基础篇一 了解了基本语法、基本数据类型这些使用&#xff0c;接下来我们来讲数组、切片、值传递、引用传递、指针类型、函数、map、结构体。 目录 数组和切片值传递、引用传递指针类型defer延迟执行函数map结构体匿名…...

【vue 引入pinia与pinia的详细使用】

vue引入pinia与使用 安装引入使用定义 store在组件中使用 store在插件中使用 store配置 store 总结 Pinia 是一个用于 Vue 3 的状态管理库&#xff0c;其设计目标是提供一个简单、一致的 API 和强类型支持。下面介绍如何引入 Pinia 并使用它。 安装 npm install pinia引入 在…...

USACO18DEC Fine Dining G

P5122 [USACO18DEC] Fine Dining G 题目大意 有一个由 n n n个点 m m m条边构成的无向连通图&#xff0c;这 n n n个点的编号为 1 1 1到 n n n。前 n − 1 n-1 n−1个点上都有一头奶牛&#xff0c;这些奶牛都要前往 n n n号点。第 i i i条边连接 a i a_i ai​和 b i b_i bi​…...

fckeditor编辑器的两种使用方法

需要的资源包我放我资源里了&#xff0c;不要积分 https://download.csdn.net/download/wybshyy/88245895 首先把FredCK.FCKeditorV2.dll添加到引用 具体方法如下&#xff0c;一个是客户端版本&#xff0c;一个是服务器端版本 客户端版本&#xff1a; <% Page Language…...

数据结构,查找算法(二分,分块,哈希)

一、查找算法 1、二分查找:(前提条件: 必须有序的序列) #include <stdio.h> //二分查找 value代表的是被查找的值 int findByHalf(int *p, int n, int value) {int low = 0;//low低int high = n-1;//high高int middle;//用来保存中间位置的下标while(low <= high…...

C++(Qt)软件调试---gdb调试入门用法(12)

gdb调试—入门用法&#xff08;1&#xff09; 文章目录 gdb调试---入门用法&#xff08;1&#xff09;1、前言1.1 什么是GDB1.2 为什么要学习GDB1.3 主要内容1.4 GDB资料 2、C/C开发调试环境准备3、gdb启动调试1.1 启动调试并传入参数1.2 附加到进程1.3 过程执行1.4 退出调试 4…...

shell和Python 两种方法分别画 iostat的监控图

在服务器存储的测试中,经常需要看performance的性能曲线&#xff0c;这样最能直接观察HDD或者SSD的性能曲线。 如下这是一个针对HDD跑Fio读写的iostat监控log,下面介绍一下分别用shell 和Python3 写画iostat图的方法 1 shell脚本 环境:linux OS gnuplot工具 第一步 :解析iosta…...

设计模式(9)建造者模式

一、 1、概念&#xff1a;将一个复杂对象的构造与它的表示分离&#xff0c;使得同样的构造过程可以创建不同的表示。建造者模式主要用于创建一些复杂的对象&#xff0c;这些对象内部构建间的顺序通常是稳定的&#xff0c;但对象内部的构建通常面临着复杂的变化&#xff1b;建造…...

PHP 创业感悟交流平台系统mysql数据库web结构apache计算机软件工程网页wamp

一、源码特点 PHP 创业感悟交流平台系统&#xff08;含论坛&#xff09;是一套完善的web设计系统&#xff0c;对理解php编程开发语言有帮助&#xff0c;系统具有完整的源代码和数据库&#xff0c;系统主要采用B/S模式开发。 源码下载&#xff1a; https://download.csdn.…...

工作流程引擎之flowable(集成springboot)

0、背景 现状&#xff1a;公司各部门业务系统有各自的工作流引擎&#xff0c;也有cross function的业务在不同系统或OA系统流转&#xff0c;没有统一的去规划布局统一的BPM解决方案&#xff0c;近期由于一个项目引发朝着整合统一的BPM方案&#xff0c;特了解一下市面上比较主流…...

leetcode54. 螺旋矩阵(java)

螺旋矩阵 题目描述解题 收缩法 上期经典算法 题目描述 难度 - 中等 原题链接 - leecode 54 螺旋矩阵 给你一个 m 行 n 列的矩阵 matrix &#xff0c;请按照 顺时针螺旋顺序 &#xff0c;返回矩阵中的所有元素。 示例1&#xff1a; 输入&#xff1a;matrix [[1,2,3],[4,5,6],[7…...

go gorm 查询

定义model package mysqltestimport ("errors""fmt""gorm.io/gorm" )type Product struct {gorm.ModelID uint gorm:"primarykey"Name string gorm:"column:name"Price float64 gorm:"column:price_value&quo…...

Flutter GetXController 动态Tabbar 报错问题

场景&#xff1a; 1.Tabbar的内容是接口获取的 2. TabController? tabController;&#xff1b; 在onInit 方法中初始化tabbarController tabController TabController(initialIndex: 0, length: titleDataList.length, vsync: this); 这时候会报一个错误 Controllers l…...

Redis(缓存预热,缓存雪崩,缓存击穿,缓存穿透)

目录 一、缓存预热 二、缓存雪崩 三、缓存击穿 四、缓存穿透 一、缓存预热 开过车的都知道&#xff0c;冬天的时候启动我们的小汽车之后不要直接驾驶&#xff0c;先让车子发动机预热一段时间再启动。缓存预热是一样的道理。 缓存预热就是系统启动前&#xff0c;提前将相关的…...

UE4/5Niagara粒子特效学习(使用UE5.1,适合新手)

目录 创建空模板 创建粒子 粒子的基础属性 粒子的生命周期 颜色 大小设置 生成的位置 Skeletal Mesh Location的效果&#xff1a; Shape Location 添加速度 添加Noise力场 在生成中添加&#xff1a; 效果&#xff1a; ​编辑 在更新中添加&#xff1a; 效果&…...

from moduleA import * 语句 和import moduleA 的区别

from moduleA import * 语句和import moduleA 的区别是&#xff1a; from moduleA import * 语句会将moduleA模块中的所有内容&#xff08;函数、变量、类等&#xff09;直接导入到当前模块的命名空间中&#xff0c;这样就可以直接使用它们&#xff0c;而不需要加上模块名的限…...

【leetcode 力扣刷题】交换链表中的节点

24. 两两交换链表中的节点 24. 两两交换链表中的节点两两节点分组&#xff0c;反转两个节点连接递归求解 24. 两两交换链表中的节点 题目链接&#xff1a;24. 两两交换链表中的节点 题目内容&#xff1a; 题目中强调不能修改节点内部值&#xff0c;是因为如果不加这个限制的话…...

学会Mybatis框架:让你的代码更具灵活性、可维护性、安全性和高效性【二.动态SQL】

&#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 接下来看看由辉辉所写的关于Mybatis的相关操作吧 目录 &#x1f973;&#x1f973;Welcome Huihuis Code World ! !&#x1f973;&#x1f973; 一.Mybatis动态SQL如何应用 1.需求 2.…...

Oracle 中 ROWNUM 使用问题记录

ROWNUM 使用问题记录(2023-08-17) Oracle 版本&#xff1a; 19.0.0.0.0 Enterprise现象&#xff1a;今天在项目遇到一个问题&#xff0c;测试人员反馈前一天能看到的数据今天看不到了 用表格举例&#xff0c;这是前一天看到的数据&#xff0c;有9、7、1 这几个数量信息 日期…...

MySQL数据库:内置函数

日期函数 规定&#xff1a;日期&#xff1a;年月日 时间&#xff1a;时分秒 函数名称作用描述current_date()当前日期current_time()当前时间current_timestamp()当前时间戳date(datetime)返回datetime参数的日期部分date_add(date,interval d_value_type)在date中添加…...

南阳网站建设多少钱/百度搜索广告怎么投放

前言 上一篇文章&#xff1a;➣SpringCloud Alibaba之Seata入门以及踩坑&#xff08;一&#xff09;老顾介绍了seata相关的准备工作&#xff0c;以及版本的选择&#xff1b;今天老顾就来介绍一下seata的使用。以及在使用过程中遇到的问题。 案例背景 今天老顾介绍的案例场景也…...

拍网制作方法图片教程/佛山旺道seo

在我的周边朋友身边就发生过这样的事情&#xff1a; 故事1&#xff1a;A君在北京从事Java开发好多年了&#xff0c;萌发了创业的念头&#xff0c;想组建了一个开发团队想大干一场。但是慢慢发现&#xff0c;构建一个有战斗力的团队真不容易。后来技术团队的组建初步有了起色&am…...

国外地推如何开展/推广关键词优化

2004.9.27 Astrophel2005.3.5 Stella v1.12005.5.25 Stella v2.0 ... ...好久没有写技术文章了&#xff0c;更是好久没有敢把自己的文章推到首页.初学的迷茫&#xff0c;入门的欢喜&#xff0c;路上的疲惫&#xff0c;对未来的向往&#xff0c;这些心情&#xff0c;都浓缩在这…...

widows安装wordpress/英文seo外链发布工具

线性插值&#xff08;双线性内插法&#xff09; 已知两个点(x1, y1)、(x2, y2)&#xff0c;求它们中间横坐标为x的点的y值。则可以利用如下公式进行插值计算。其中a和(1-a)为x距离x1和x2的距离占(x2-x1)的比例。 y a*y1 (1-a)*y2 线性插值的在二维图像上的计算 现在假设im(m,…...

建设阿里巴巴网站首页/怎么做网站关键词优化

Scala Option(选项)类型用来表示一个值是可选的&#xff08;有值或无值)。 Option[T] 是一个类型为 T 的可选值的容器&#xff1a; 如果值存在&#xff0c; Option[T] 就是一个 Some[T] &#xff0c;如果不存在&#xff0c; Option[T] 就是对象 None 。 接下来我们来看一段代码…...

怎样做旅游网站/美国今天刚刚发生的新闻

IO的分类 IO IO的方式通常分为几种&#xff0c;同步阻塞的BIO、同步非阻塞的NIO、异步非阻塞的AIO。 IO流的简单分类 按照流的流向分&#xff0c;可以分为输入流和输出流&#xff1b;按照操作单元划分&#xff0c;可以划分为字节流和字符流&#xff1b;按照流的角色划分为节点…...