VC的若干实用小技巧(三)

    技术2022-05-11  83

    Visual C++6.0(5.0)开发工具功能非常强大,但是对于初学者来说,却有很多细节的问题需要注意。作者搜集整理了以下一些实用小技巧,希望对初学者有所帮助。       1:使用中文VC(VC++在中文平台下可以使用中文,但编译后那些按钮上的、对话框上的中文都成ASCII码了)     因为VC++在安装时是默认按单字节字符安装的,而中文字符是双字节编码,自然就不能正确显示了。     解决方法:     将VC++光盘上DEVSTUDIO/SHAREDIDE/BIN/IDE路径下的中文资源语言模块Appwzchs.dll拷贝至硬盘DevStudio/SharedIDE/BIN/IDE路径下即可。    2:位图按钮的使用(可产生动态效果)     选定要使用位图的按钮(以OK按钮为例,假设其标识符为IDOK),选其属性中的Owner draw选项(必须),此时,在对话框编辑器中就可看到原先显示在按钮上的字符都消失了。将按钮的Caption改为OK(必须为大写)。打开Insert菜单,单击其中的Resource选项,随后选择Bitmap。再按下Import(导入)按钮,将所需位图导入项目(Project)。在Resource View窗口中通过右键单击刚才导入的位图,将其ID(标识符)改为“OKU”(注意:字符必须为大写)     双引号及字母U必不可少。     字母U代表的按钮为按下状态时所显示的位图。     此外还可使用后缀D、F、X,分别表示按下、拥有输入焦点时、按钮处于无效状态时所显示的位图。通过对同一个按钮的不同状态使用不同的位图,很容易做出具有动态效果的按钮。     当将按钮所需使用的位图导入到项目中后,就应该在使用位图按钮的那个对话框的类声明文件中加入位图按钮变量的定义CBitmapButton m_OK。在用到Bitmap处,加入如下语句:     m_BtonOK.AutoLoad(IDC_BtonOK)     使程序在运行时将位图装入内存并显示。     至此,创建位图按钮的整个步骤即告结束。       3:通用对话框的使用     大家都遇到过CFileDialog文件对话框吧,它的参数让人头疼.下面解除大家的头疼.     先在使用文件对话框的类的类定义文件中加入对象定义CFileDialog m_MyOpenDialog(TRUE,"avi","*.avi")。随后,在需要使用该对话框的地方加入以下语句:     m_MyOpenDialog.Domodal();     就可以预览所有.avi文件.     其调用规则为:     函数原型:     CFileDialog(BOOL bOpenFileDialog,LPCTSTR lpszDefExt=NULL,LPCTSTR lpszFileName=NULL,DWORD dwFlags = OFN_HIDEREADONLY | OFN_OVERWRITEPR OMPT,LPCTSTR lpszFilter=NULL,CWnd * pParentWnd =NULL);     参数说明:     bOpenFileDialog:为TRUE或FALSE。TRUE为打开文件;FALSE为保存文件。     lpszDefExt     :为缺省的扩展名。     lpszFileName   :为显示在文件名组合框的编辑框的文件名,一般可选NULL     dwFlags        :为对话框风格,一般为OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,即隐藏只读选项和覆盖已有文件前提示。     LpszFilter     :为下拉列表枢中显示文件类型。     pParentWnd     :一般可选NULL。     例如:在文件类型列表框的编辑框要显示“可执行文件(*.exe)”,而在它的下拉列表框中列出“视频文件(*.avi)、All Files(*.*)”内容,则变量定义如下:CFileDialog m_MyOpenDialog(TRUE,"exe",NULL,OFN_HIDEREADONLY | OFN_OVERWRITEPROMPT,"可执行文件(*.exe) | *.exe|视频文件(*.bat) | *.bat |All Files (*.*) | *.* ||",NULL);     注:看看没有*.*后的||会是什么效果.    4:怎样添加无基类的类?     在ClassView中右键选new class,class type选 Generic Class,填上Class Name就可以了。    5:如何定义基于CObject的类?     按照问题4生成新类,手动在新类的头文件的class CYourClass后加上:public CObject.     形式如下:     class CYourClass : public CObject     即可.   

    最新回复(0)