VC++MFC控件知识点
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1按钮控件
1.1如何使用按钮控件
方法是双击编辑对话框按钮图标,之后就进入了这个按钮单击的处理函数,在这里,你可以添加按钮单击后要做的事是什么.
1.2如何让按钮显示图标样式
首先进入ResourceView里,然后右击Icon选择插入,之后选择你要的图标,假设这个图标的ID名为IDI_ICON2,那么下一步,就是进入对话类中的OnPaint()函数,并在else里面添加如下语句:
m_Quit.SetIcon(LoadIcon(AfxGetResourceHandle(),MAKEINTRESOURCE(IDI_ICON2)));
注:m_Quit为要显示图标按钮的关联类;
还要说明的是,必须把按钮属性样式里把图标的构给打上才行,要不然是无法显示图标的。
1.3如何让按钮显示文本信息
先要在对话框添加一个CToolTipCtrl类的对象,如:CToolTipCtrl m_ToolTip;
然后在OnInitDialog添加以下语句:
m_ToolTip.Create(this);
m_ToolTip.AddTool(&m_Confirm,”文本信息”);//m_Confirm为要显示文本按钮关联的类对象然后在类视图窗口中右击对话框类,在弹出的菜单中选择Add Virtual Funtion,然后再双击PreTranslateMessage;添加右边窗口中去,这样便增加了一个方法,在此方法中添加以下语句m_ToolTip.RelayEvent(pMsg);既可;
2.1如何使用复选框控件
复选框控件是有一个X的图标,比如是三个复选框吧,首先各为三个复选框关联一个控件类,比如是m_Vip,m_Manager,m_Commoner;那么调用m_Vip.GetCheck();返回的是一个整数,如果返回值等于BST_CHECKED;那么此类关联的复选框控件就被选中了。如果要获取此类关联控件的文本信息就用m_Vip.GetWindowText(Modal);其中Modal是一个CString类的对象,跟Edit是差不多的,存储有信息。
3.1如何使用进度条控件
先为控件关联一个类,如m_Progress;那么先要为进度条的控件设定一个范围,比如设定0~99999;就用SetRange32()函数。如:m_Progress.SetRange32(0,99999);这样,当调用m_Progress.SetPos(50000);时,进度条就会显示在一半左右。要显示就是不停的调用。编辑显示,似乎要SetWindowText,UpdateData不行。
也好像只是静态控件才可以显示;
4.1编辑框数据的输出与获取
编辑框数据的输出与获取有两种方法,第一种,为编辑框关联一个CONTROL类型的类,假如是m_OutResult,那么要获取数据,就先定义一个CString类的对象,假如为m_Data;那么m_OutResult.GetWindowText(m_Data);此时,m_Data就存储有编辑框里的内容。输出就用SetWindowText函数,如CString m_Data=”abcdefg”;m_OutResult.SetWindowText(m_Data);或者把括号里的m_Data换成“abcdefg”;
第二种方法是直接为编辑框关联一个V ALUE的类型,有CString,double,int等等类型,假如为CString类型,名也为OutResult;此时如果要获取该编辑框信息就调用UpdateData(FALSE);调用之后,OutResult就存储有编辑框里的信息了。如果要输出的话;
比如要输出”abcdefg”;那么就是下面语句:OutResult=”abcdefg”;UpdateData(TRUE);这样就更新数据到编辑框里了,可以推断,如果编辑框里只是int类型,那么就选int;而double就是double;
4.2如何进行换行输出
右击编辑框,选择属性,然后在样式里把多行的勾给打上,这样,只要输出字符串里有\r\n,就可以了,也就是说,只要遇到这两具转义字符,就进行换行。
4.3如何响应编辑输入数字消息
就是如果在编辑输入值,就会立即执行相应的函数,
方法,是添加这个编辑控件ID的OnChange消息函数
编辑框字体和颜色的设置
设置字体
首先添加一个编辑控件,关为其关联一个对象如:m_Content;然后在对话框定义一个类字体对象如:CFont m_EditFont;这样在对话框初始部分添加以下语句:
m_EditFont.CreateFont(24,20,0,0,400,0,0,0,DEFAULT_CHARSET,OUT_DEFAULT_PREC IS,
CLIP_DEFAULT_PRECIS,600,DEFAULT_PITCH,"宋体");
m_Content.SetFont(&m_EditFont);
关于函数参数的意思,在VC++编译器里,输入参数的时候,会有提示的。好好研究一下;16.2设置颜色
添加一个对话框WM_CTLCOLOR消息处理函数,然后就在这个函数里添加以下语句:if(nCtlColor==CTLCOLOR_EDIT)
{
pDC->SetTextColor(RGB(255,0,0));
}
就可以了,我想你应该明白语句的意思;
5.1如何使用图像控件
先得插入一个位图文件,似乎只支持256色及其以下的图片,方法是:切换到RESOURCEVIEW窗口右击ICON选择插入再选择BITMAP接着按引入。按了之后,就多出了个BITMAP文件,看一下你插入位图的ID,之后再到对话框中,右击图像框,选择属性。在类型选项框里选择位图,再在下面那个图像选项框选择要显示位图的ID,就行了。
5.2如何动态加载位图
先为图像控件关联一个类,图像控件属性对话框里的类型选择位图。注:由于默认是静态ID所以得改一个ID名才行,类名为m_Bmp;
之后在按钮单击事件加入以下语句:
CFileDialog
flDlg(TRUE,NULL,NULL,OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT,"位图|*.bmp||");//文件对话框类对象
if(flDlg.DoModal()==IDOK)//显示文件对话框
{
CString szBmpName;
szBmpName=flDlg.GetPathName();//获取选择路径名,如位图,文本。
HBITMAP
hOldBmp=m_Bmp.SetBitmap((HBITMAP)LoadImage(NULL,szBmpName,IMAGE_BITMAP, 0,0,LR_LOADFROMFILE));//加载位图文件
DeleteObject(hOldBmp);//释放位图文件资源
}