C++ MFC各控件代码练习例子
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
void CMy122Dlg::OnButton1open() {
m_OPEN.EnableWindow(false ); //EnableWindow()方法可以使按钮失效
MessageBox("已打开");
m_CLOSE.EnableWindow(true );
}
void CComboboxDlg::Onmony()
{
UpdateData(TRUE);
CString str,strmoy;
strmoy.Format("%d",m_money);
str="你确定要将";
str+=strmoy;
str+="元打入对方账户?";
if (IDOK==MessageBox(str,"提示",MB_ICONQUESTION|MB_OKCANCEL))
{
MessageBox("付款成功","提示",MB_ICONASTERISK);
}
}
控制显示的文本利用成员函数SetWindowText/GetWindowText 用于设置/得到当前显示的文本。
通过GetLimitText/SetLimitText 可以得到/设置在输入框中输入的字符数量。
输入框几种常用的消息映射宏:
ON_EN_CHANGE 输入框中文字更新后产生
ON_EN_ERRSPACE 输入框无法分配内存时产生
ON_EN_KILLFOCUS / ON_EN_SETFOCUS 在输入框失去/得到输入焦点时产生
在创建滚动条后需要调用void SetScrollRange( int nMinPos, int nMaxPos, BOOL bRedraw = TRUE )设置滚动范围, int GetScrollPos( )/int SetScrollPos( )用来得到和设置当前滚动条的位置。
void ShowScrollBar( BOOL bShow = TRUE );用来显示/隐藏滚动条。
BOOL EnableScrollBar( UINT nArrowFlags = ESB_ENABLE_BOTH )用来设置滚动条上箭头是否为允许状态。nArrowFlags 可取以下值:
ESB_ENABLE_BOTH 两个箭头都为允许状态
ES_DISABLE_LTUP 上/左箭头为禁止状态
MessageBox("这个是自定义的消息!!!" ,"自定义消息对话框!!!",MB_ICONINFORMATION); MB_ABORTRETRYIGNORE 显示终止重试或忽然按钮 MB_OK 显示确定按钮 MB_RETRYCANCEL 显示确定或取消按钮 MB_YESNO 显示重试或取消按钮 MB_YESNOCANCEL 显示是或否按钮 MB_ICONQUESTION 带问号图标 MB_ICONHAND 、MB_ICONSTOP 、MB_ICONERROR 三种都是带叉号图标 MB_ICONEXCLAMA TION 、MB_ICONW ARNING 两种都是带感叹号图标 MB_ICONASTERISK MB_ICONINFORMA TION 带信息号图标 AfxMessageBox()函数缺点就无法设置消息对话框的标,提示消息框的标题与工程名称相同, 优点:就是在动态链接库工程或其它工程中,可以直接用它来显示消息提示对话框。 MessageBox()函数必须用于一个窗口对象,没有窗口对象,就无法调用MessageBox()函数
ESB_DISABLE_BOTH 两个箭头都为禁止状态
SB_TOP/SB_BOTTOM 已滚动到顶/底部
SB_LINEUP/SB_LINEDOWN 向上/下滚动一行
SB_PAGEDOWN/SB_PAGEUP 向上/下滚动一页
SB_THUMBPOSITION/SB_THUMBTRACK 滚动条拖动到某一位置,参数nPos指明当前位置(参数nPos在其它的情况下是无效的)
SB_ENDSCROLL 滚动条拖动完成(用户松开鼠标)
注意:如果出现以上功能不好使的情况,可以关闭当前的工程,然后在工程目录下删除扩展名为“.ncb”的文件,然后重新打开工程,Visual C++会重建一个“.ncb”文件,此时完全取词功能将恢复正常。
void C_bj::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
void C_bj::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
SCROLLINFO scrollinfo;
SetScrollRange (SB_VERT, 0, 850, TRUE);//这个就是设置你的滚动条的范围
GetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
switch (nSBCode)
{
case SB_BOTTOM:
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMax));
scrollinfo.nPos = scrollinfo.nMax;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_TOP:
ScrollWindow(0,(scrollinfo.nPos-scrollinfo.nMin));
scrollinfo.nPos = scrollinfo.nMin;
SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL);
break;
case SB_LINEUP:
scrollinfo.nPos -= 20;
if (scrollinfo.nPos { scrollinfo.nPos = scrollinfo.nMin; break; } SetScrollInfo(SB_VERT,&scrollinfo,SIF_ALL); ScrollWindow(0,20); break; case SB_LINEDOWN: scrollinfo.nPos += 20; if (scrollinfo.nPos>scrollinfo.nMax) { scrollinfo.nPos = scrollinfo.nMax; break; }