VC小技巧汇总之对话框技巧
本文搜集汇总了VC中关于对话框常用的一些技巧,对于进行VC开发由于一定的参考借鉴价值。
1.如何修改对话框的背景色:
在对话框的OnPaint()函数中加入下面语句:
CRect rect; GetClientRect(&rect); //计算对话框的尺寸 dc.FillSolidRect(&rect,RGB(192,248,202)); //绘制对话框背景色
2.如何让弹出式对话框具有统一的背景色:
在应用程序类CxxxApp的InitInstance()函数中加入下面的语句:
SetDialogBkColor( RGB(192,248,202) );
则所有用户定义的弹出式对话框都以RGB(192,248,202)为背景色,就不需要逐个进行设置了。
3.如何让打开文件对话框能进行多项选择:
在定制打开文件对话框时,增加OFN_ALLOWMULTISELECT属性,就可以使打开文件对话框进行多选了。
如:
CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, NULL, NULL ); 之后,用GetStartPosition()函数获取选择的起始文件位置,用GetNextPathName()函数获取各位置上的文件名。 如: if( m_Dlg.DoModal() == IDOK ) { POSITION pos; pos = m_Dlg.GetStartPosition(); while( pos ) { m_Path = m_Dlg.GetNextPathName(pos); ………… } }
4.为什么用打开文件对话框选择多个文件到一定数目时,文件没有打开?
CFileDialog为文件列表设置有缓冲区,当选择文件过多时,会造成缓冲区溢出,造成一些文件没有被打开。可以采用自定义大缓冲区代替系统缓冲区的方法解决。
如:
CFileDialog m_Dlg( TRUE, NULL, NULL, OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT | OFN_ALLOWMULTISELECT, NULL, NULL );//定制打开文件对话框 char* pBuf = new char[20480]; //申请缓冲区 m_Dlg.m_ofn.nMaxFile = 20480; //让pBuf代替CFileDialog缓冲区 m_Dlg.m_ofn.lpstrFile = pBuf; m_Dlg.m_ofn.lpstrFile[0] = NULL; ………… delete []pBuf; //回收缓冲区
5.提示对话框(MessageBox)
在视类和对话框类中可使用MFC函数中用的MessageBox()函数弹出提示对话框。这个函数原型为:
int MessageBox(LPCTSTR lpszText,LPCTSTR lpsCaption=NULL,UINT nType=MB_OK);
参数:
lpszText 显示的字符串
lpsCaption 对话框的标题
nType 风格,可为如下值的组合:
指定下列标志中的一个来显示消息框中的按钮,标志的含义如下。
MB_ABORTRETRYIGNORE:消息框含有三个按钮:Abort,Retry和Ignore。
MB_OK:消息框含有一个按钮:OK。这是缺省值。
MB_OKCANCEL:消息框含有两个按钮:OK和Cancel。
MB_RETRYCANCEL:消息框含有两个按钮:Retry和Cancel。
MB_YESNO:消息框含有两个按钮:Yes和No。
MB_YESNOCANCEL:消息框含有三个按钮:Yes,No和Cancel。
指定下列标志中的一个来显示消息框中的图标:标志的含义如下。
MB_ICONEXCLAMATION:
MB_ICONWARNING:一个惊叹号出现在消息框。
MB_ICONINFORMATION:
MB_ICONASTERISK:一个圆圈中小写字母i组成的图标出现在消息框。
MB_ICONOUESTION:一个问题标记图标出现在消息框。
MB_ICONSTOP:
MB_ICONERROR:
MB_ICONHAND:一个停止消息图标出现在消息框。
指定下列标志中的一个来指定缺省的按钮:标志的含义如下。
MB_DEFBUTTON1:第一个按钮为缺省按钮。如果MB_DEFBUTTON2,MB_DEFBUTTON3,MB_DEFBUTTON4没有被指定,则MB_DEFBUTTON1为缺省值。
MB_DEFBUTTON2;第二个按钮为缺省按钮。
MB_DEFBUTTON3:第三个按钮为缺省按钮。
MB_DEFBUTTON4:第四个按钮为缺省按钮。
例:提示文件是否存盘:
int t; t=MessageBox(m_PathName+"的文字已经改变,要存盘吗?","警告",MB_YESNOCANCEL | MB_ICONWARNING); if(t==0 || t==IDCANCEL) return; if(t==IDYES) OnFileSave();
在文档类等其它类中不能使用MFC中的MessageBox()函数,只能使用API函数中的MessageBox()函数:
int MessageBox(HWND hWnd,LPCTSTR lpszText,LPCTSTR lpCaption,UINT UType);
hWnd:标识将被创建的消息框的拥有窗口。如果此参数为NULL,则消息框没有拥有窗口。
后三个参数与视类的MessageBox相同,但没有缺省值,必须设置。
例:
::MessageBox(NULL,m_PathName+"的文字已经改变,要存盘吗?","警告",MB_YESNOCANCEL | MB_ICONWARNING);
相关文章
- photoshop软件是一款专业的图像设计软件了,但对电脑的要求也是越高越好的,如果配置一般打开ps会比较慢了,那么photoshop打开很慢怎么办呢,下面来看问题解决办法。 1、...2016-09-14
- 复制代码 代码如下: <td> <a href="/member/life/edit_ppt/<?php echo $v->id;?>" class="btn">编辑</a> <a href="javascript:;" onclick="if(confirm('您确定删除这条记录?')){location.href='/member/life/d...2014-06-07
- JQuery使我们在开发Ajax应用程序的时候提高了效率,减少了许多兼容性问题,我们在Ajax项目中,遇到ajax异步获取数据出错怎么办,我们可以通过捕捉error事件来获取出错的信息。在没给大家介绍正文之前先给分享Jquery中AJAX参...2015-11-24
- 目前,JSON已经成为最流行的数据交换格式之一,各大网站的API几乎都支持它。我写过一篇《数据类型和JSON格式》,探讨它的设计思想。今天,我想总结一下PHP语言对它的支持,这是开发互联网应用程序(特别是编写API)必须了解的知识...2015-10-30
- 通过本篇文章给大家介绍Sublime Text3使用技巧的相关知识,对sublime text3技巧相关知识感兴趣的朋友一起学习吧...2015-12-24
- 刷票行为,一直以来都是个难题,无法从根本上防止。但是我们可以尽量减少刷票的伤害,比如:通过人为增加的逻辑限制。基于 PHP,下面介绍防刷票的一些技巧:1、使用CURL进行信息伪造$ch = curl_init(); curl_setopt($ch, CURLOP...2015-11-24
基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化
这篇文章主要介绍了基于BootStrap Metronic开发框架经验小结【六】对话框及提示框的处理和优化的相关知识,主要对比说明在Bootstrap开发中用到的这些技术要点,对此文感兴趣的朋友一起学习吧...2016-05-14- 这篇文章主要介绍了SpringMVC文件上传原理及实现过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-07-15
- 这篇文章主要介绍了分享12个非常实用的JavaScript小技巧,这些小技巧可能在你的实际工作中或许能帮助你解决一些问题,需要的朋友可以参考下...2016-05-14
- 本篇文章介绍了我在爬虫过程中总结的几个必备技巧,都是经过实验的,通读本篇对大家的学习或工作具有一定的价值,需要的朋友可以参考下...2021-10-22
C# MVC模式中应该怎样区分应用程序逻辑(Controller层)和业务逻辑(Model层)?
这篇文章主要介绍了C# MVC模式中应该怎样区分应用程序逻辑(Controller层)和业务逻辑(Model层)?,这也小编做.NET项目时经常思考和让人混乱的一个问题,这篇文章写的挺好,一下清晰了许多,需要的朋友可以参考下...2020-06-25- 今天小编在这里就来给Illustrator的这一款软件的使用者们来说一说像素级完美绘制的经验技巧,各位想知道具体信息的使用者们,那么下面就快来跟着小编一起看一看。 给...2016-09-14
使用Maven 搭建 Spring MVC 本地部署Tomcat的详细教程
这篇文章主要介绍了使用Maven 搭建 Spring MVC 本地部署Tomcat,本文通过图文并茂的形式给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下...2021-08-16- 这篇文章主要介绍了SpringMvc自动装箱及GET请求参数原理解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-19
vc提示unexpected end of file found的原因分析
这篇文章主要介绍了vc提示unexpected end of file found的原因分析,给出了几点常见错误原因的分析,需要的朋友可以参考下...2020-04-25- 这篇文章主要介绍了SpringMvc获取请求头请求体消息过程解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-09-17
- 这篇文章主要介绍了CocosCreator MVC架构,同学们在制作游戏过程中,尽量使用一些架构,会避免很多问题...2021-04-16
Springmvc ResponseBody响应json数据实现过程
这篇文章主要介绍了Springmvc ResponseBody响应json数据实现过程,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下...2020-10-26- 本篇文章介绍了,基于C#后台调用跨域MVC服务及带Cookie验证的实现。需要的朋友参考下...2020-06-25
- 这篇文章主要介绍了仅30行代码实现Javascript中的MVC的方法,MVC的基础是观察者模式,这是实现model和view同步的关键,想要深入了解的朋友可以参考本文...2016-02-18