MFC之控件

静态文本框:

dwStyle:


CStatic类的主要成员函数:



注意的是:CStatic是由CWind的派生类。


静态文本框:

CEdit类成员函数: 

GetWindowText和SetWindowText,GetWindowTextLength。

int LineFromChar(int nIndex = –1) const;
返回多行编辑框中指定索引的字符所在行的行号(从零开始),只适用于多行编辑框。nIndex等于-1则返回所选择正文的第一个字符所在行的索引。如果没有选择正文,则返回当前行的行号。


int LineIndex(int nLine = –1) const;
返回由nLine指定行的起始字符在编辑框的整个字符串中的索引,只适用于多行编辑框。如果指定行超过编辑框的最大行数,则返回-1,而如果nLine为-1,则返回当前插入符所在行的起始字符的索引。


void GetSel(int& nStartChar,int& nEndChar) const;
获取选择正文的索引范围。nStartChar返回被选择正文的起始索引,nEndChar返回被选择正文的终止索引(不包括在选择范围内)。如果没有选择正文,则两者均为当前插入符的索引。


void SetSel(int nStartChar,int nEndChar,BOOL bNoScroll=FALSE);
选择编辑框中的正文。nStartChar为选择开始处的索引,nEndChar为选择结束处的索引。如果nStartChar为0并且nEndChar为-1,则选择所有正文,而如果nStartChar为-1则取消所有选择。bNoScroll为FALSE时滚动插入符并使之可见,为TRUE时不滚动。


void ReplaceSel(LPCTSTR lpszNewText,BOOL bCanUndo = FALSE);
用lpszNewText指向的字符串来替换选择的正文。如果bCanUndo为TRUE则替换可以被撤销。


int GetLineCount() const;
获取正文的行数,只适用于多行编辑框。如果编辑框没有正文则返回1。


int LineLength( int nLine = –1 ) const;
获取指定字符索引所在行的字节长度(行尾的回车和换行符不计算在内),参数nLine 说明了为字符索引。如果nLine 的值为-1,则函数返回当前行的长度(假如没有正文被选择),或选择正文占据的行的字符总数减去选择正文的字符数(假如有正文被选择)。若用于单行编辑框,则函数返回整个正文的长度。


int GetLine( int nIndex, LPTSTR lpszBuffer ) const;
int GetLine( int nIndex, LPTSTR lpszBuffer, int nMaxLength ) const;
用来获得指定行的正文(不包括行尾的回车和换行符),只适用于多行编辑框。参数nIndex 是行号,lpszBuffer 指向存放正文的缓冲区,nMaxLength 规定了拷贝的最大字节数。若指定的行号小于编辑框的实际行数,函数返回实际拷贝的字节数,若指定的行号大于编辑框的实际行数,则函数返回0。需要注意的是,GetLine 函数不会在缓冲区中字符串的末尾添加字符串结束符(NULL)。 


UINT GetLimitText( ) const;
获取编辑框能够接受的正文的最大字节数。


void LimitText(int nChars = 0);
设置用户在编辑框中可以输入的正文的最大长度(字节数)。如果nChars为0,则最大长度为UINT_MAX个字节。

<span style="font-size:18px;">  m_editMultiLine.SetWindowText(_T("正文的雷人预期"));  // 设置编辑框正文为“<span style="font-family: Arial, Helvetica, sans-serif;">正文的雷人预期</span>”   
  m_editMultiLine.SetSel(5, 7);                            // 选择起始索引为5,终止索引为7,选择的正文,即“前五个字”   
  m_editMultiLine.ReplaceSel(_T("\r\nwww.zhibo8.cc"));  // 将选择的“博客”替换为“\r\nwww.zhibo8.cc”   
</span>
结果为:正文的雷人

             www.zhibo8.cc


按钮控件:

Button、Radio Button、Check Box

注意的是:控件有3种状态: 选择、未选择、不确定

CButton类成员函数:

HBITMAP SetBitmap(HBITMAP hBitmap);
设置要在按钮中显示的位图。参数hBitmap为位图的句柄。返回值为按钮原来位图的句柄。


HBITMAP GetBitmap( ) const;
获取之前由SetBitmap函数设置的按钮位图的句柄。


void SetButtonStyle(UINT nStyle,BOOL bRedraw = TRUE);
设置按钮的风格。参数nStyle指定按钮的风格,bRedraw指定按钮是否重绘,为TRUE则重绘,否则不重绘,默认为重绘。 


UINT GetButtonStyle( ) const;
获取按钮控件的风格。


void SetCheck(int nCheck);
设置按钮的选择状态。参数nCheck为0表示未选中状态,1表示选中状态,2表示不确定状态(仅用于复选框)。

int GetCheck( ) const;
获取按钮的选择状态。返回值的意义同SetCheck函数的nCheck参数。


HCURSOR SetCursor(HCURSOR hCursor);
设置要显示到按钮上的光标图。参数hCursor指定了光标的句柄。返回值为按钮原来光标的句柄。


HCURSOR GetCursor( );
获取之前由SetCursor设置的光标的句柄。


HICON SetIcon(HICON hIcon);
设置要在按钮上显示的图标。参数hIcon指定了图标的句柄。返回值为按钮原来图标的句柄。


HICON GetIcon( ) const;
获取之前由SetIcon设置的图标的句柄。


void SetState(BOOL bHighlight);
设置按钮的高亮状态。参数bHighlight指定按钮是否高亮显示,非0则高亮显示,否则取消高亮显示状态。


UINT GetState( ) const;
获取按钮控件的选择状态、高亮状态和焦点状态。我们可以通过将返回值与各个掩码相与来获得各种状态值,掩码与对应的相与结果说明如下:
掩码0x0003:用来获取单选按钮或复选框的状态。相与结果为0表示未选中,1表示被选中,2表示不确定状态(仅用于复选框)。
掩码0x0004:用来判断按钮是否是高亮显示。相与结果为非0值表示按钮是高亮显示的。当单击按钮并按住鼠标左键时,按钮会呈高亮显示。
掩码0x0008:相与结果为非零值表示按钮拥有输入焦点。

void CheckDlgButton(int nIDButton,UINT nCheck);
用来设置按钮的选择状态。参数nIDButton指定了按钮的ID。nCheck的值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)。


UINT IsDlgButtonChecked(int nIDButton) const;
返回复选框或单选按钮的选择状态。返回值为0表示按钮未被选择,为1表示按钮被选择,为2表示按钮处于不确定状态(仅用于复选框)。


void CheckRadioButton(int nIDFirstButton,int nIDLastButton,int nIDCheckButton);
用来选择组中的一个单选按钮。参数nIDFirstButton指定了组中第一个按钮的ID,nIDLastButton指定了组中最后一个按钮的ID,nIDCheckButton指定了要选择的按钮的ID。


int GetCheckedRadioButton(int nIDFirstButton, int nIDLastButton);
用来获得一组单选按钮中被选中按钮的ID。参数nIDFirstButton 说明了组中第一个按钮的ID,nIDLastButton 说明了组中最后一个按钮的ID。


CWnd类的成员函数GetWindowText()、SetWindowText()等也可以用来获取或设置按钮中显示的文本。

列表框控件(ListBox):

listBox成员函数:

int GetCount( ) const;
返回值:返回列表框中列表项的数目,如果发生错误则返回LB_ERR

int GetSel(intnIndex) const;
参数:nIndex指定某个列表项的索引。
返回值:返回nIndex指定列表项的状态。如果此列表项被选择了则返回一个正值,否则返回0,若发生错误则返回LB_ERR

int SetSel(int nIndex,BOOLbSelect = TRUE);
此函数只用于多选列表框,使用它可以选择或取消选择指定的列表项。
参数:nIndex指定某个列表项的索引,若为-1则相当于指定了所有列表项。bSelectTRUE时选择指定列表项,否则取消选择指定列表项。
返回值:如果发生错误则返回LB_ERR

intAddString(LPCTSTR lpszItem);
此函数用来向列表框中添加字符串。如果列表框指定了LBS_SORT风格,字符串就被以排序顺序插入到列表框中,如果没有指定LBS_SORT风格,字符串就被添加到列表框的结尾。
参数:lpszItem指定了要添加的字符串。
返回值:返回字符串在列表框中添加的位置。如果发生错误则返回LB_ERR,内存不够则返回LB_ERRSPACE

intInsertString(int nIndex, LPCTSTR lpszItem);
该函数用来在列表框中的指定位置插入字符串。与AddString函数不同的是,InsertString函数不会导致LBS_SORT风格的列表框重新排序。不要在具有LBS_SORT风格的列表框中使用InsertString函数,以免破坏列表项的次序。
参数:。参数nIndex给出了插入位置(索引),如果值为-1,则字符串将被添加到列表的末尾。参数lpszItem指定了要插入的字符串。
返回值:返回实际的插入位置,若发生错误,会返回LB_ERRLB_ERRSPACE

intDeleteString(UINT nIndex);
该函数用于删除指定的列表项。
参数:nIndex 指定了要删除项的索引。
返回值:函数的返回值为剩下的列表项数目,如果nIndex超过了实际的表项总数,则返回LB_ERR

voidResetContent();
该函数用于清除所有列表项。

int GetText(intnIndex,LPTSTR lpszBuffer) const;
void GetText(intnIndex,CString& rString) const;
这两个成员函数用于获取指定列表项的字符串。参数nIndex指定了列表项的索引。参数lpszBuffer指向一个接收字符串的缓冲区。引用参数rString则指定了接收字符串的CString对象。第一个版本的函数会返回获得的字符串的长度,若出错,则返回LB_ERR;第二个版本的函数则不会。

int GetTextLen(intnIndex) const;
该函数返回指定列表项的字符串的字节长度。
参数:nIndex 指定了列表项的索引。
返回值:若出错则返回LB_ERR

int GetCurSel()const;
该函数仅适用于单选列表框,用来返回当前被选择项的索引,如果没有列表项被选择或有错误发生,则函数返回LB_ERR

intSetCurSel(int nSelect);
该函数仅适用于单选列表框,用来选择指定的列表项。该函数会滚动列表框以使选择项可见。参数nIndex指定了列表项的索引,若为-1,那么将清除列表框中的选择。若出错函数返回LB_ERR

int GetSelCount()const;
该函数仅用于多重选择列表框,它返回选择项的数目,若出错函数返回LB_ERR

int FindString(intnStartAfter,LPCTSTR lpszItem) const;
该函数用于对列表项进行与大小写无关的搜索。参数nStartAfter指定了开始搜索的位置,合理指定nStartAfter可以加快搜索速度,若nStartAfter-1,则从头开始搜索整个列表。参数lpszItem指定了要搜索的字符串。函数返回与lpszItem指定的字符串相匹配的列表项的索引,若没有找到匹配项或发生了错误,则会返回LB_ERRFindString函数先从nStartAfter指定的位置开始搜索,若没有找到匹配项,则会从头开始搜索列表。只有找到匹配项,或对整个列表搜索完一遍后,搜索过程才会停止,所以不必担心会漏掉要搜索的列表项。

intSelectString(int nStartAfter,LPCTSTR lpszItem);
该函数仅适用于单选列表框,用来选择与指定字符串相匹配的列表项。该函数会滚动列表框以使选择项可见。参数的意义及搜索的方法与函数FindString类似。如果找到了匹配的项,函数返回该项的索引,如果没有匹配的项,函数返回LB_ERR并且当前的选择不被改变。


组合框控件ComboBox

分三种: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
:组合框获得了输入焦点


CComboBox成员函数:

int GetCount( ) const;
获取组合框控件的列表框中列表项的数量。

int GetCurSel() const;
获取组合框控件的列表框中选中项的索引,如果没有选中任何项,该函数返回CB_ERR

int SetCurSel(int nSelect);
在组合框控件的列表框中选择某项。nSelect参数指定了要选择的列表项的索引,如果为-1则列表框中当前选择项被取消选中,编辑框也被清空。

DWORD GetEditSel( ) const;
获取组合框控件的编辑框中当前选择范围的起始和终止字符的位置。该函数返回一个32位数,低16位存放起始位置,高16位存放选择范围后第一个非选择字符的位置。如果该函数用于下拉列表式组合框时,会返回CB_ERR

BOOLSetEditSel(int nStartChar,int nEndChar);
用于在组合框控件的编辑框中选择字符。nStartChar参数指定起始位置,nEndChar参数指定终止位置。

DWORD_PTRGetItemData(int nIndex) const;
获取组合框中指定项所关联的32位数据。nIndex参数指定组合框控件的列表框某项的索引(从0开始)。

int SetItemData(intnIndex,DWORD_PTR dwItemData);
为某个指定的组合框列表项设置一个关联的32位数。nIndex参数指定要进行设置的列表项索引。dwItemData参数指定要关联的新值。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: MFC LinearGauge控件是一种在MFC框架下可用的线性测量仪控件。它通常用于显示和测量线性数据或者在图形界面展示进度条。 在MFC,LinearGauge控件是由CLinearGauge类来实现的。它继承自CStatic类,可以放置在对话框或者其他窗口的位置上。通过使用MFC的类向导工具,我们可以轻松地在MFC应用程序添加和配置LinearGauge控件。 LinearGauge控件具有各种自定义选项,可以通过代码或者可视化设计工具进行设置。可以设置线性刻度的最小值和最大值,以及刻度的间隔。还可以设置控件的宽度、高度、颜色和样式等属性。 通过编程,我们可以动态地更新LinearGauge的值。通过设置控件的当前值,我们可以实时地更新控件的显示。这对于需要在用户界面显示实时数据或者进度的应用程序非常有用。 总之,MFC LinearGauge控件是一种用于显示和测量线性数据或者展示进度条的控件。它通过MFC框架提供了简单的方法来添加和配置该控件,并且可以通过编程动态地更新控件的值。 ### 回答2: MFC(Microsoft Foundation Class)是微软公司为Windows操作系统开发的一套面向对象的应用程序框架。Lineargauge控件MFC框架提供的一个控件类。 Lineargauge控件是一种线性刻度测量控件,用于表示线性范围内的数值或百分比。它通常用于显示实时数据的变化趋势或进度的完成度。它具有以下特点: 1. 线性显示:Lineargauge控件以水平或垂直的线性方式显示刻度,可以根据需要进行设置。用户可以通过设置控件的长度和宽度来适应不同的界面布局。 2. 刻度定制:Lineargauge控件可以根据需求进行刻度的定制。用户可以设置刻度的数量、间距和范围。同时,用户还可以自定义刻度的样式和颜色,以便更好地展示数据。 3. 数据绑定:Lineargauge控件支持数据绑定功能,可以将控件与数据源进行关联。这样,控件会根据数据源的数值自动更新刻度的位置和进度的显示,实现实时的数据更新和呈现。 4. 动画效果:Lineargauge控件可以通过添加动画效果,使刻度的变化过程更加流畅和生动。这样,可以更直观地展示数据的变化趋势或进度的完成度。 总之,Lineargauge控件MFC框架用于线性刻度测量的一个实用控件,它可以根据需求进行定制,支持数据绑定和动画效果,方便开发人员进行数据的可视化展示和动态更新。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值