时间:2021-05-20
本文搜集汇总VC的5则小技巧,非常实用,对于VC程序设计有很好的参考借鉴价值,详情如下:
1.如何获取程序所在的路径
也就是获取你这个程序本身所在的路径。
在应用程序类CxxApp的头文件中定义一个变量CString m_exePath;用来放置程序的路径名,在应用程序类CxxApp的InitInstance()函数中加入如下语句:
这段程序执行后,字符串变量m_exePath中放置的就是程序所在路径,其中不包括程序名。
获取程序的位置有什么用呢?
(1)打开与应用程序在一起放置的数据文件:
如果你运行程序过程中使用过打开文件对话框打开过其它路径下的文件,这时系统的默认路径就发生了改变,有可能使你原定的数据文件打不开了,如果采用以下方法就可以没问题了:
(2)放置程序运行中的临时文件:
同样,当系统的默认路径发生改变后,程序中生成的临时文件就会放得到处都是,成了一个个垃圾文件,采用以下方法可使临时文件只放在程序所在路径下:
程序结束时,用下面的方法删除临时文件:
2.如何在你的程序中执行其它程序
在自己的程序中调用其它程序的方法有好几种,这里我介绍我用过的两种:
(1)WinExec()函数:
一般用法:
m_PathName为执行程序的路径名,必须为可执行文件。
如:
(2)ShellExecute()函数:
一般用法:
m_PathName为打开的程序路径名;
_T("c:\temp")为工作目录;
与WinExec()不同的是ShellExecute()函数也可以打开非可执行文件,比如你指定的文件为.txt,结果会打开记事本装入该文件。我用这种方法调用自己制作的帮助文件(.chm)效果很好。
3.如果不使用串行化,如何在程序结束时保存文件?
在文档-视图结构中,用串行化自动保存文件在各种VC书上都有介绍。现在的问题是我不使用串行化,而是自己动手保存,当点击窗口的关闭按钮时,如何提示并保存文档。
用ClassWizard在文档类(CxxDoc)中添加函数CanCloseFrame(),再在其中加入保存文件的语句就可以了。
例:
这样当你单击窗口上的关闭按钮时,如果数据已修改了,就会弹出一个提示保存数据的对话框,提示你保存数据。
程序中的b_Flag是数据修改标志,应该在修改数据时进行设置,m_Text是准备保存的数据,放在文档内。
4.POSITION怎么用?
POSITION类型数据用于表征各种列表中元素的位置,它类似于数组的下标,但又有所不同。主要区别是:
我们不能访问POSITION型数据的值,也不能对POSITION数据型数据进行加减、比较等运算。
用POSITION型数据访问列表时,都是采用迭代法,一般格式为:
GetNext()就是一种迭代,其格式为:
首先,它返回当前pos位置处的元素;再就是把pos值修改为下一个元素位置。这样循环时,可依次取得列表中各元素的值;当到达列表尾时,pos为NULL,循环结束。
所以使用POSITION型数据时,你不要试图用加减等操作去修改它,只能用GetNext()(向后迭代)或GetPrev()(向前迭代)反复迭代来修改它的值。
如果你想直接到达指定值,还可以用Find()函数或FindIndex()函数获得指定值的POSITION值。
如:
总之,POSITION类型在多种涉及列表的类中提供,不同的类提供的函数有所不同,但用法都是类似的。
5.如何从完整的文件路径中分离文件名和路径名?
从路径中分离文件名:
CString GetFileName(CString pathname) { for( int i=pathname.GetLength()-1; i>=0; i-- ) { if( pathname[i]=='\' ) break; } return pathname.Mid( i+1 ); }从路径中分离路径名(去除文件名):
CString GetPath(CString pathname) { int i = 0, j; while( i<pathname.GetLength() ) { if( pathname[i]=='\' ) j = i; i++; } return pathname.Left( j+1 ); }声明:本页内容来源网络,仅供用户参考;我单位不保证亦不表示资料全面及准确无误,也不保证亦不表示这些资料为最新信息,如因任何原因,本网内容或者用户因倚赖本网内容造成任何损失或损害,我单位将不会负任何法律责任。如涉及版权问题,请提交至online#300.cn邮箱联系删除。
本文搜集汇总了VC小技巧的控件技巧,对于进行VC开发来说有一定的借鉴价值,具体如下:1.如何隐藏和显示控件用CWnd类的函数BOOLShowWindow(int
本文搜集汇总了VC小技巧的窗口技巧,对于VC程序开发的窗口设计而言有一定的借鉴价值,详情如下:1.让窗口一启动就最大化把应用程序类(CxxxApp)的InitI
很多商家都想努力提升自己的网店运营技巧,小编发现大家都比较重视难度比较大的运营技巧,往往那些实用且简单的小技巧都会被忽略。其实这些小技巧的用处是很大的,虽然
很多商家都想努力提升自己的网店运营技巧,小编发现大家都比较重视难度比较大的运营技巧,往往那些实用且简单的小技巧都会被忽略。其实这些小技巧的用处是很大的,虽然简单
本文向大家分享23种JavaScript提高执行效率的小技巧、最佳实践等非常实用的内容。当然JavaScript的实用技巧不止这些,还有很多即好玩又能提高程序运