3_2、MFC常用控件用法:组合框、滚动条和图片控件
MFC控件用法
- 1、组合框
- 1.1 简介
- 1.2 创建
- CComboBox类的主要成员函数
- 1.3 实例
- 2、滚动条控件
- 2.1 简介
- 2.2 创建
- CScrollBar类的主要成员函数
- 2.3 实例
- 3、图片控件
- 3.1 简介
- 3.2 创建
- 图片控件静态加载图片
- 图片控件动态加载图片
1、组合框
1.1 简介
组合框其实就是把一个编辑框和一个列表框组合到了一起,分为三种:简易(Simple)组合框、下拉式(Dropdown)组合框和下拉列表式(Drop List)组合框。
- 简易组合框中的列表框是一直显示的;
- 下拉式组合框默认不显示列表框,只有在点击了编辑框右侧的下拉箭头才会弹出列表框;
- 下拉列表式组合框的编辑框是不能编辑的,只能由用户在下拉列表框中选择了某项后,在编辑框中显示其文本。.
常用的当属下拉式组合框和下拉列表式组合框了,它们在很多时候能使程序看起来更专业,更简洁,让用户在进行选择操作时更方便。
组合框被操作时会向父窗口发送通知消息,这些通知消息及其含义如下:
通知消息 | 含义 |
---|---|
CBN_CLOSEUP | 组合框的列表框组件被关闭,简易组合框不会发送该通知消息 |
CBN_DBLCLK | 用户在某列表项上双击鼠标,只有简易组合框才会发送该通知消息 |
CBN_DROPDOWN | 组合框的列表框组件下拉,简易式组合框不会发送该通知消息 |
CBN_EDITUPDATE | 在编辑框准备显示改变了的正文时发送该消息,下拉列表式组合框不会发送该消息 |
CBN_EDITCHANGE | 编辑框的内容被用户改变了,与CBN_EDITUPDATE不同,该消息是在编辑框显示的正文被刷新后才发出的,下拉列表式组合框不会发送该消息 |
CBN_ERRSPACE | 组合框无法申请足够的内存来容纳列表项 |
CBN_SELENDCANCEL | 表明用户的选择应该取消,当用户在列表框中选择了一项,然后又在组合框控件外单击鼠标时就会导致该消息的发送 |
CBN_SELENDOK | 用户选择了一项,然后按了回车键或单击了下滚箭头,该消息表明用户确认了自己所作的选择 |
CBN_KILLFOCUS | 组合框失去了输入焦点 |
CBN_SELCHANGE | 用户通过单击或移动箭头键改变了列表的选择 |
CBN_SETFOCUS | 组合框获得了输入焦点 |
1.2 创建
MFC将组合框控件的所有操作都封装到了CComboBox类中。
创建有两种方式:
- 往对话框模板中拖入Combo Box控件,而后添加CComboBox类型的控件变量使用。
- 在程序中动态创建,使用CComboBox类的成员函数Create。Create函数的原型如下:
virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID
);
- CComboBox类的Create成员函数同大多数控件类的Create成员函数非常类似,dwStyle指定组合框控件的风格,rect为列表框弹出后组合框的位置和尺寸,pParentWnd是指向父窗口的指针,不能为NULL,nID指定组合框控件的ID。
- 组合框控件的风格包括以下几种:
控件风格 | 含义 |
---|---|
CBS_AUTOHSCROLL | 使编辑框组件具有水平滚动的风格 |
CBS_DISABLENOSCROLL | 使列表框在不需要滚动时显示一个禁止的垂直滚动条 |
CBS_DROPDOWN | 指定一个下拉式组合框 |
CBS_DROPDOWNLIST | 指定一个下拉列表式组合框 |
CBS_HASSTRINGS | 指定一个含有字符串的自绘式组合框 |
CBS_LOWERCASE | 将编辑框和列表框中的所有文本都自动转换为小写字符 |
CBS_NOINTEGRALHEIGHT | 组合框的尺寸由应用程序而不是Windows 指定,通常,由Windows指定尺寸会使列表项的某些部分隐藏起来 |
CBS_OEMCONVERT | 使编辑框组件中的正文可以在ANSI 字符集和OEM字符集之间相互转换。这在编辑框中包含文件名时是很有用的 |
CBS_OWNERDRAWFIXED | 指定自绘式组合框,即由父窗口负责绘制列表框的内容,并且列表项有相同的高度 |
CBS_OWNERDRAWVARIABLE | 指定自绘式组合框,并且列表项有不同的高度 |
CBS_SIIMPLE | 指定一个简易组合框 |
CBS_SORT | 自动对列表框组件中的项进行排序 |
CBS_UPPERCASE | 将编辑框和列表框中的所有文本都自动转换为大写字符 |
dwStyle参数可以是以上风格的组合。跟其他控件一样,创建时一般也还要指定WS_CHILD、WS_VISIBLE、WS_TABSTOP和WS_VSCROLL等风格。
CComboBox类的主要成员函数
因为组合框是由编辑框和列表框组合而成的,所以组合框的操作和编辑框与列表框的操作有很多相似之处,同样的,CComboBox类的成员函数也和CEdit类与CListBox类的成员函数有很多相似之处,不但功能相似,甚至函数名和参数也很相似。
- int GetCount( ) const;
获取组合框控件的列表框中列表项的数量。 - int GetCurSel( ) const;
获取组合框控件的列表框中选中项的索引,如果没有选中任何项,该函数返回CB_ERR。 - int SetCurSel(int nSelect);
在组合框控件的列表框中选择某项。nSelect参数指定了要选择的列表项的索引,如果为-1则列表框中当前选择项被取消选中,编辑框也被清空。 - DWORD GetEditSel( ) const;
获取组合框控件的编辑框中当前选择范围的起始和终止字符的位置。该函数返回一个32位数,低16位存放起始位置,高16位存放选择范围后第一个非选择字符的位置。如果该函数用于下拉列表式组合框时,会返回CB_ERR。 - BOOL SetEditSel(int nStartChar,int nEndChar);
用于在组合框控件的编辑框中选择字符。nStartChar参数指定起始位置,nEndChar参数指定终止位置。 - DWORD_PTR GetItemData(int nIndex) const;
获取组合框中指定项所关联的32位数据。nIndex参数指定组合框控件的列表框某项的索引(从0开始)。 - int SetItemData(int nIndex,DWORD_PTR dwItemData);
为某个指定的组合框列表项设置一个关联的32位数。nIndex参数指定要进行设置的列表项索引。dwItemData参数指定要关联的新值。 - void GetLBText(int nIndex,CString& rString) const;
从组合框控件的列表框中获取某项的字符串。nIndex参数指定要获取字符串的列表项的索引,CString参数用于接收取到的字符串。 - int GetLBTextLen(int nIndex) const;
获取组合框控件的列表框中某项的字符串长度。nIndex参数指定要获取字符串长度的列表项的索引。 - int GetTopIndex( ) const;
获取组合框控件的列表框中第一个可见项的索引。 - int SetTopIndex(int nIndex);
将组合框控件的列表框中某个指定项设置为可见的。nIndex参数指定了该列表项的索引。该函数成功则返回0,有错误发生则返回CB_ERR。 - BOOL LimitText(int nMaxChars);
用于限制用户在组合框控件的编辑框中能够输入的最大字节长度。nMaxChars参数指定了用户能够输入文字的最大字节长度,如果为0则长度被限制为65535个字节。 - int AddString(LPCTSTR lpszString);
为组合框控件中的列表框添加新的列表项。lpszString参数是指向要添加的字符串的指针。该函数的返回值如果大于等于0,那么它就是新列表项的索引,而如果有错误发生则会返回CB_ERR,如果没有足够的内存存放新字符串则返回CB_ERRSPACE。 - int DeleteString(UINT nIndex);
删除组合框中某指定位置的列表项。nIndex参数指定了要删除的列表项的索引。该函数的返回值如果大于等于0,那么它就是组合框中剩余列表项的数量。如果nIndex指定的索引超出了列表项的数量则返回CB_ERR。 - int FindString(int nStartAfter,LPCTSTR lpszString) const;
在组合框控件的列表框中查找但不选中第一个包含指定前缀的列表项。nStartAfter参数指定了第一个要查找的列表项之前的那个列表项的索引。lpszString指向包含要查找的前缀的字符串。该函数的返回值如果大于等于0,那么它是匹配列表项的索引,如果查找失败则返回CB_ERR。 - int InsertString(int nIndex,LPCTSTR lpszString);
向组合框控件的列表框中插入一个列表项。nIndex参数指定了要插入列表项的位置,lpszString参数则指定了要插入的字符串。该函数返回字符串被插入的位置,如果有错误发生则会返回CB_ERR,如果没有足够的内存存放新字符串则返回CB_ERRSPACE。 - int SelectString(int nStartAfter,LPCTSTR lpszString);
在组合框控件的列表框中查找一个字符串,如果查找到则选中它,并将其显示到编辑框中。参数同FindString。如果字符串被查找到则返回此列表项的索引,如果查找失败则返回CB_ERR,并且当前选择项不改变。
1.3 实例
步骤:
- 创建控件,创建控件变量;
- 在OnInitDialog函数中进行控件的初始化;
m_comFood.AddString(_T("蔬菜"));m_comFood.AddString(_T("水果"));m_comFood.InsertString(1,_T("肉类"));m_comFood.SetCurSel(0);
- 在对话框类的成员函数中对控件相关的消息相应进行处理。生成组合框控件的相关消息相应函数。针对CBN_SELCHANGE通知消息生成消息相应函数,在函数体中操作:
CString strFood;int nSel;nSel = m_comFood.GetCurSel();m_comFood.GetLBText(nSel, strFood);SetDlgItemText(IDC_EDT_COM, strFood);
2、滚动条控件
2.1 简介
滚动条分为水平滚动条(Horizontal Scroll Bar)和垂直滚动条(Vertical Scroll Bar)两种。滚动条中有一个滚动块,用于标识滚动条当前滚动的位置。我们可以拖动滚动块,也可以用鼠标点击滚动条某一位置使滚动块移动。
从滚动条的创建形式来分,有标准滚动条和滚动条控件两种。像列表框和组合框设置了WS_HSCROLL 或WS_VSCROLL风格以后出现的滚动条,不是一个独立的窗口,而是这些窗口的一部分,这就是标准滚动条。而滚动条控件是一个独立的窗口,它可以获得焦点,响应某些操作。
2.2 创建
MFC也为滚动条控件的操作提供了类,即为CScrollBar类。
创建有两种方式:
- 一种是直接在Toolbox中将滚动条控件拖入对话框模板,然后添加控件变量使用。
- 用CScrollBar类的Create成员函数动态创建。 CScrollBar类的成员函数Create的函数原型如下:
virtual BOOL Create(DWORD dwStyle,const RECT& rect,CWnd* pParentWnd,UINT nID
);
- 此函数与其他控件类的Create函数原型基本相同。参数dwStyle指定滚动条控件的风格,rect指定滚动条控件的位置和尺寸,pParentWnd为指向滚动条控件父窗口的指针,nID指定滚动条控件的ID。
控件风格 | 含义 |
---|---|
SBS_HORZ | 指定滚动条为水平滚动条。如果没有指定SBS_BOTTOMALIGN或SBS_TOPALIGN风格,则滚动条的高度、宽度和位置由Create函数的rect参数给出。 |
SBS_VERT | 指定滚动条为垂直滚动条。如果没有指定SBS_RIGHTALIGN或SBS_LEFTALIGN风格,则滚动条的高度、宽度和位置由Create函数的rect参数给出。 |
SBS_TOPALIGN | 与SBS_HORZ配合使用。滚动条的上边缘与Create函数的rect参数指定矩形的上边缘对齐。滚动条高度为系统滚动条的默认高度。 |
SBS_BOTTOMALIGN | 与SBS_HORZ配合使用。滚动条的下边缘与Create函数的rect参数指定矩形的下边缘对齐。滚动条高度为系统滚动条的默认高度。 |
SBS_LEFTALIGN | 与SBS_VERT配合使用。滚动条的左边缘与Create函数的rect参数指定矩形的左边缘对齐。滚动条宽度为系统滚动条的默认宽度。 |
SBS_RIGHTALIGN | 与SBS_VERT配合使用。滚动条的右边缘与Create函数的rect参数指定矩形的右边缘对齐。滚动条宽度为系统滚动条的默认宽度。 |
CScrollBar类的主要成员函数
- BOOL GetScrollInfo(LPSCROLLINFO lpScrollInfo, UINT nMask = SIF_ALL);
获取的滚动条的参数信息,该信息为SCROLLINFO结构体的形式。参数lpScrollInfo为指向SCROLLINFO结构体变量的指针。
参数nMask 的含义与SCROLLINFO 结构体中的fMask一样。该函数在获取信息成功则返回TRUE,否则返回FALSE。SCROLLINFO结构体的定义如下:
typedef struct tagSCROLLINFO { UINT cbSize; // 结构的尺寸(字节为单位) UINT fMask; // 说明结构中的哪些参数是有效的,可以是屏蔽值的组合,如SIF_POS|SIF_PAGE,若为SIF_ALL则整个结构都有效 int nMin; // 滚动范围最小值,当fMask 中包含SIF_RANGE 时有效 int nMax; // 滚动范围最大值,当fMask 中包含SIF_RANGE 时有效 UINT nPage; // 页尺寸,用来确定比例滚动框的大小,当fMask中包含SIF_PAGE时有效 int nPos; // 滚动框的位置,当fMask 中包含SIF_POS 有效 int nTrackPos; // 滚动时滚动框的位置,当fMask 中包含SIF_TRACKPOS 时有效,该参数只能查询,不能设置,最好不要用该参数来查询拖动时滚动框的位置
} SCROLLINFO, *LPSCROLLINFO;
typedef SCROLLINFO CONST *LPCSCROLLINFO;
- BOOL SetScrollInfo(LPSCROLLINFO lpScrollInfo, BOOL bRedraw = TRUE);
用于设置滚动条的各种参数信息。参数lpScrollInfo为指向SCROLLINFO结构体变量的指针,参数bRedraw表示是否需要重绘滚动条,如果为TRUE,则重绘。该函数操作成功则返回TRUE,否则返回FALSE。 - int GetScrollPos( ) const;
获取滚动块的当前位置。如果失败则返回0。 - int SetScrollPos(int nPos, BOOL bRedraw = TRUE);
将滚动块移动到指定位置。参数nPos指定了滚动块的新位置,参数bRedraw 表示是否需要重绘滚动条,如果为TRUE,则重绘。函数返回滚动框原来的位置,若操作失败则返回0。 - void GetScrollRange(LPINT lpMinPos, LPINT lpMaxPos) const;
获取滚动条的滚动范围。参数lpMinPos指向滚动条滚动范围的最小值,参数lpMaxPos指向滚动条滚动范围的最大值。 - void SetScrollRange(int nMinPos, int nMaxPos, BOOL bRedraw = TRUE);
用于指定滚动条的滚动范围。参数nMinPos 和nMaxPos 分别指定了滚动范围的最小值和最大值,两者的差不得超过32767。当两者都为0 时,滚动条将被隐藏。参数bRedraw 表示是否需要重绘滚动条,如果为TRUE,则重绘。 - OnHScroll()与OnVScroll()函数
无论是标准滚动条,还是滚动条控件,滚动条的通知消息都是用WM_HSCROLL 和WM_VSCROLL消息发送出去的。对这两个消息的默认处理函数是CWnd::OnHScroll和CWnd::OnVScroll,一般需要在派生类中对这两个函数进行重载,以实现滚动功能。也就是说,假设在一个对话框中放入了一个水平滚动条,我们可以在对话框类中重载OnHScroll函数,并在OnHScroll函数中实现滚动功能。
afx_msg void OnHScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);
afx_msg void OnVScroll(UINT nSBCode,UINT nPos,CScrollBar* pScrollBar);
- 参数nSBCode是通知消息码,主要通知码及含义的介绍下面已列出。nPos 是滚动框的位置,只有在nSBCode为SB_THUMBPOSITION或SB_THUMBTRACK时,该参数才有意义。如果通知消息是滚动条控件发来的,那么pScrollBar 是指向该控件的指针,如果是标准滚动条发来的,则pScrollBar 为NULL。
通知消息码 | 含义 |
---|---|
SB_BOTTOM/SB_RIGHT | 滚动到底端(右端) |
SB_TOP/SB_LEFT | 滚动到顶端(左端) |
SB_LINEDOWN/SB_LINERIGHT | 向下(向右)滚动一行(列) |
SB_LINEUP/SB_LINELEFT | 向上(向左)滚动一行(列) |
SB_PAGEDOWN/SB_PAGERIGHT | 向下(向右)滚动一页 |
SB_PAGEUP/SB_PAGELEFT | 向上(向左)滚动一页 |
SB_THUMBPOSITION | 滚动到指定位置 |
SB_THUMBTRACK | 滚动框被拖动。可利用该消息来跟踪对滚动框的拖动 |
SB_ENDSCROLL | 滚动结束 |
2.3 实例
步骤:
- 创建控件,创建控件变量;
- 在OnInitDialog函数中进行控件的初始化;
m_scrHBar.SetScrollRange(1,100);m_scrHBar.SetScrollPos(20);SetDlgItemInt(IDC_EDT_SCR, 20);
- 重载OnHScroll函数。具体操作为,属性页面的工具栏上点“Messages”按钮,找到WM_HSCROLL消息,添加响应函数就可以。
int pos = m_scrHBar.GetScrollPos(); // 获取水平滚动条当前位置 switch (nSBCode){// 如果向左滚动一列,则pos减1 case SB_LINELEFT:pos -= 1;break;// 如果向右滚动一列,则pos加1 case SB_LINERIGHT:pos += 1;break;// 如果向左滚动一页,则pos减10 case SB_PAGELEFT:pos -= 10;break;// 如果向右滚动一页,则pos加10 case SB_PAGERIGHT:pos += 10;break;// 如果滚动到最左端,则pos为1 case SB_LEFT:pos = 1;break;// 如果滚动到最右端,则pos为100 case SB_RIGHT:pos = 100;break;// 如果拖动滚动块滚动到指定位置,则pos赋值为nPos的值 case SB_THUMBPOSITION:pos = nPos;break;// 下面的m_horiScrollbar.SetScrollPos(pos);执行时会第二次进入此函数,最终确定滚动块位置,并且会直接到default分支,所以在此处设置编辑框中显示数值 default:SetDlgItemInt(IDC_EDT_SCR, pos);
3、图片控件
3.1 简介
图片控件和前面讲到的静态文本框都是静态文本控件,因此两者的使用方法有很多相同之处,所属类都是CStatic类。
3.2 创建
图片控件静态和动态加载位图图片。
图片控件静态加载图片
- 常见图片控件;
- 导入图片资源,放置在资源文件夹中;
- 在图片控件属性中选择类型为:bitmap,然后导入相关的位图文件即可。图片控件的类型有:
Frame:显示一个无填充的矩形框,边框颜色可以通过Color属性的下拉列表设定
Etched Horz:显示一条横分割线
Etched Vert:显示一条竖分割线
Rectangle:显示一个填充的矩形框,矩形颜色可通过Color属性的下拉列表设定
Icon:显示一个图标(Icon),图标通过Image 下拉列表来设置图标资源ID
Bitmap:显示一个位图(Bitmap),位图通过Image 下拉列表来设置位图资源ID
Enhanced Metafile:显示一个加强的元数据文件(Metafile)
Owner Draw:自绘
图片控件动态加载图片
- 将图片控件的ID进行修改为:IDC_STA_PIC,并添加图片控件变量;
- 加载位图资源并设置ID号;
- 函数操作添加图片位图资源:
CBitmap bitmap; // CBitmap对象,用于加载位图 HBITMAP hBmp; // 保存CBitmap加载的位图的句柄 bitmap.LoadBitmap(IDB_BMP_TEST); // 将位图IDB_BITMAP1加载到bitmap hBmp = (HBITMAP)bitmap.GetSafeHandle(); // 获取bitmap加载位图的句柄 m_staPic.SetBitmap(hBmp); // 设置图片控件m_jzmPicture的位图图片为IDB_BITMAP1
相关文章:

3_2、MFC常用控件用法:组合框、滚动条和图片控件
MFC控件用法 1、组合框1.1 简介1.2 创建CComboBox类的主要成员函数 1.3 实例 2、滚动条控件2.1 简介2.2 创建CScrollBar类的主要成员函数 2.3 实例 3、图片控件3.1 简介3.2 创建图片控件静态加载图片图片控件动态加载图片 1、组合框 1.1 简介 组合框其实就是把一个编辑框和一…...

如何使用gprof对程序进行性能分析
如何使用gprof对程序进行性能分析 目录 1 gprof概述 2 gprof原理简述 3 gprof使用 3.1 gprof使用简述 3.2 gprof使用示例 4 小结 1 gprof概述 gprof 是 一个 GNU 的程序性能分析工具,可以用于分析C\C程序的执行性能。gprof工具可以统计出各个函数的调用次数、执…...

四川汇聚荣科技有限公司靠谱吗?
在如今这个信息爆炸的时代,了解一家公司是否靠谱对于消费者和合作伙伴来说至关重要。四川汇聚荣科技有限公司作为一家位于中国西部地区的企业,自然也受到了人们的关注。那么,这家公司究竟如何呢?接下来,我们将从多个角度进行深入…...

可灵王炸更新,图生视频、视频续写,最长可达3分钟!Runway 不香了 ...
现在视频大模型有多卷? Runway 刚在6月17号 发布Gen3 ,坐上王座没几天; 可灵就在6月21日中午,重新夺回了王座!发布了图生视频功能,视频续写功能! 一张图概括: 二师兄和团队老师第一…...
oracle中使用临时表GLOBAL TEMPORARY TABLE
需要在存储过程中返回一个临时结果集,这个结果集又是多个语句通过循环查询出来的,这时候就想到了将结果插入到临时表中,然后返回临时表的数据的思路,于是有了以下操作: 1.创建临时表 -- Create table create global …...

Gradio入门—快速开始
目录 安装构建您的第一个演示分享您的演示核心 Gradio 课程聊天机器人gr.ChatInterface自定义演示gr.BlocksGradio Python 和 JavaScript 生态系统 Gradio 是一个开源 Python 软件包,可让您快速为机器学习模型、API 或任何任意 Python 函数构建演示或 Web 应用程序。…...

AOP应用之系统操作日志
本文演示下如何使用AOP,去实现系统操作日志功能。 实现步骤 引入AOP包 <dependency><groupId>org.springframework.boot</groupId><artifactId>spring-boot-starter-aop</artifactId><version>2.6.6</version></de…...

海外云手机自动化管理,高效省力解决方案
不论是企业还是个人,对于海外社媒的营销都是需要自动化管理的,因为自动化管理不仅省时省力,而且还节约成本; 海外云手机的自动化管理意味着什么?那就是企业无需再投入大量的人力和时间去逐一操作和监控每一台设备。 通…...
后仿真中的 《specify/endspecify block》之(5)使用specify进行时序仿真
前面我们学习了specify...endspecify 具体是什么东西。今天,我们使用specify block 中定义的延时,来进行一次仿真。看看到底是背后如何运转的呢。 一 基本例子 一个用 specify 指定延迟的与门逻辑描述如下: module and_gate(output Z,input A, B);assign Z = A & …...

win10/11磁盘管理
win10/11磁盘管理 合并磁盘分区的前提是你的两个磁盘区域是相邻的,比如如下: 如果需要吧这个磁盘进行分解,你可以选择压缩一部分磁盘或者是直接删除卷 我这里的话,因为压缩出来的卷和C盘好像是不相邻的(我之前做过&…...
【昇思初学入门】第四天打卡
数据变换Transforms 心得体会 MindSpore提供了丰富的数据变换工具,针对图像数据可以使用如Rescale、Normalize和HWC2CHW等,且使用Compose类允许我们定义一个变换序列,并将它们作为一个整体应用到数据上。 composed transforms.Compose([v…...

禁用/屏蔽 Chrome 默认快捷键
Chrome 有一些内置的快捷键,但是它并没有像其他软件一样提供管理快捷键的界面。在某些时候,当我们因为个人需求希望禁用 Chrome 某些快捷键时,又无从下手。 好在有开发者开发了 Chrome 插件,可以禁用 Chrome 快捷键的插件&#x…...

移动端+PC端应用模式的智慧城管综合执法办案平台源码,案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析
城市管理综合执法管理平台实现执法办案、业务全流程在线办理,依托移动端PC端的“两端”应用模式,保障能够通过信息化手段进行日常的执法办案工作,强化执法监督功能。提供了案件在线办理、当事人信用管理、文书电子送达、沿街店铺分析等功能&a…...
AI音乐大模型时代:版权归属与创意产业的新生长点
AI在创造还是毁掉音乐? 简介:最近一个月,轮番上线的音乐大模型,一举将素人生产音乐的门槛降到了最低,并掀起了音乐圈会不会被AI彻底颠覆的讨论。短暂的兴奋后,AI产品的版权归属于谁,创意产业要…...
C++函数作为参数
C++函数作为参数 在C++中,函数作为另一个函数的参数是非常常见的做法,特别是在处理回调函数和泛型编程时。我们展示了如何在C++中将函数作为参数传递给另一个函数,包括普通函数、std::function 和 std::bind、lambda表达式以及类成员函数。每种方法都有其独特的优势,可以根…...

考前刷题练手感(北航期末往年数据结构编程题)
本次因为是考前一天极速刷题,所以没有讲解,若有问题可私信。 目录 一、 查找同时空人员二、 老鼠回家-无回路三、函数调⽤关系四、东二食堂模拟五、栈帧 一、 查找同时空人员 【问题描述】 假设一共有6个手机基站,都具有记录手机连接基站状…...

Android记录9--实现转盘效果
自定义View /2013.10.16_TurnPlate_Demo/src/com/wwj/turnplate/TurnPlateView.java package com.wwj.turnplate; import android.content.Context; import android.content.res.Resources; import android.graphics.Bitmap; import android.graphics.BitmapFactory; im…...

【Oracle APEX开发小技巧1】转换类型实现显示小数点前的 0 以 及常见类型转换
在 apex 交互式式网格中,有一数值类型为 NUMBER,保留小数点后两位的项,在 展示时小数点前的 0 不显示。 效果如下: 转换前: m.WEIGHT_COEFFICIENT 解决方案: 将 NUMBER(20,2…...

GRIT论文阅读笔记
一篇试图统一生成任务和编码任务的工作,就是把只能完成生成任务的GPT改成既能生成又能encode。思路其实很简单,就是在输入的时候添加instruction tokens来指引模型做representation还是generation,然后各自算损失。representation任务用的是d…...

1980python个性化电影推荐管理系统mysql数据库Django结构layUI布局elasticsearch存储计算机软件工程网页
一、源码特点 python Django个性化电影推荐管理系统是一套完善的web设计系统mysql数据库 利用elasticsearch存储浏览数据 ,对理解python编程开发语言有帮助,系统具有完整的源代码和数据库,系统主要采用B/S模式开发。 开发环境pycharm…...

CTF show Web 红包题第六弹
提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框,很难让人不联想到SQL注入,但提示都说了不是SQL注入,所以就不往这方面想了 先查看一下网页源码,发现一段JavaScript代码,有一个关键类ctfs…...

大话软工笔记—需求分析概述
需求分析,就是要对需求调研收集到的资料信息逐个地进行拆分、研究,从大量的不确定“需求”中确定出哪些需求最终要转换为确定的“功能需求”。 需求分析的作用非常重要,后续设计的依据主要来自于需求分析的成果,包括: 项目的目的…...

聊聊 Pulsar:Producer 源码解析
一、前言 Apache Pulsar 是一个企业级的开源分布式消息传递平台,以其高性能、可扩展性和存储计算分离架构在消息队列和流处理领域独树一帜。在 Pulsar 的核心架构中,Producer(生产者) 是连接客户端应用与消息队列的第一步。生产者…...

前端导出带有合并单元格的列表
// 导出async function exportExcel(fileName "共识调整.xlsx") {// 所有数据const exportData await getAllMainData();// 表头内容let fitstTitleList [];const secondTitleList [];allColumns.value.forEach(column > {if (!column.children) {fitstTitleL…...
电脑插入多块移动硬盘后经常出现卡顿和蓝屏
当电脑在插入多块移动硬盘后频繁出现卡顿和蓝屏问题时,可能涉及硬件资源冲突、驱动兼容性、供电不足或系统设置等多方面原因。以下是逐步排查和解决方案: 1. 检查电源供电问题 问题原因:多块移动硬盘同时运行可能导致USB接口供电不足&#x…...
macOS多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用
文章目录 问题现象问题原因解决办法 问题现象 macOS启动台(Launchpad)多出来了:Google云端硬盘、YouTube、表格、幻灯片、Gmail、Google文档等应用。 问题原因 很明显,都是Google家的办公全家桶。这些应用并不是通过独立安装的…...

【Java_EE】Spring MVC
目录 Spring Web MVC 编辑注解 RestController RequestMapping RequestParam RequestParam RequestBody PathVariable RequestPart 参数传递 注意事项 编辑参数重命名 RequestParam 编辑编辑传递集合 RequestParam 传递JSON数据 编辑RequestBody …...
汇编常见指令
汇编常见指令 一、数据传送指令 指令功能示例说明MOV数据传送MOV EAX, 10将立即数 10 送入 EAXMOV [EBX], EAX将 EAX 值存入 EBX 指向的内存LEA加载有效地址LEA EAX, [EBX4]将 EBX4 的地址存入 EAX(不访问内存)XCHG交换数据XCHG EAX, EBX交换 EAX 和 EB…...

Spring数据访问模块设计
前面我们已经完成了IoC和web模块的设计,聪明的码友立马就知道了,该到数据访问模块了,要不就这俩玩个6啊,查库势在必行,至此,它来了。 一、核心设计理念 1、痛点在哪 应用离不开数据(数据库、No…...
是否存在路径(FIFOBB算法)
题目描述 一个具有 n 个顶点e条边的无向图,该图顶点的编号依次为0到n-1且不存在顶点与自身相连的边。请使用FIFOBB算法编写程序,确定是否存在从顶点 source到顶点 destination的路径。 输入 第一行两个整数,分别表示n 和 e 的值(1…...