c#实现资源管理器一个函数调用问题?急急急!!!

问题描述

我是个在校生,去年听说别的专业开的有c#我就去听了听,感觉很不错啊,就学了起来啊,但是一直都想做一个资源管理器的界面,现在看了网上别人做的这个程序啊,这个程序的原代码在http://www.blog.edu.cn/user1/16293/archives/2006/1183625.shtml有两个地方不能看懂啊,现在想请高手指点一下迷经.获得文件的icon是调用了一个函数,这个函数就是protectedvirtualvoidSetIcon(ImageListimageList,stringFileName,booltf){SHFILEINFOfi=newSHFILEINFO();if(tf==true){intiTotal=(int)SHGetFileInfo(FileName,0,reffi,100,16640);//SHGFI_ICON¦SHGFI_SMALLICONtry{if(iTotal>0){Iconic=Icon.FromHandle(fi.hIcon);imageList.Images.Add(ic);//returnic;}}catch(Exceptionex){MessageBox.Show(ex.Message,"错误提示",0,MessageBoxIcon.Error);}}else{intiTotal=(int)SHGetFileInfo(FileName,0,reffi,100,257);try{if(iTotal>0){Iconic=Icon.FromHandle(fi.hIcon);imageList.Images.Add(ic);//returnic;}}catch(Exceptionex){MessageBox.Show(ex.Message,"错误提示",0,MessageBoxIcon.Error);}}//returnnull;}在这个函数中我有一点不是很明白啊,就是为什么要判断调用函数是传入的参数tf,是否为真,如果tf==true是调用intiTotal=(int)SHGetFileInfo(FileName,0,reffi,100,16640);elseintiTotal=(int)SHGetFileInfo(FileName,0,reffi,100,257);我想知道分别调用的这两个方法得到的iTotal有什么区别,为什么它们最后的一个参数一个是16640,一个是257,得到的整形iTotal代表是什么,为什么下面还要判断她是否大于零啊

解决方案

解决方案二:
if(tf==true)建议改为:if(tf)

时间: 2024-08-01 04:58:59

c#实现资源管理器一个函数调用问题?急急急!!!的相关文章

vc6.0-求大神教我怎样用MFC编一个任务管理器,急急急!!

问题描述 求大神教我怎样用MFC编一个任务管理器,急急急!! 怎么用VC6.0的MFC来实现一个简易的资源管理器 我新建了这样的一个project: 然而并不能看懂注释的意思,不知道要在哪里写些什么!!(就因为这样,网上的源码也看不懂......) 所以,有哪位大神可以依据图片告诉我:在哪个文件里写什么内容(比如:在xxx文件的xxxx部分写xxx),让我有个具体的实现过程的了解!! 有图片示范的就更好了,回答好的加C啊!! 感激不尽!!TT TT TT 解决方案 参考:http://downl

已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急

问题描述 已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急 已知一个带有头结点的单链表,设计算法将该单链表复制一个拷贝,急急急 解决方案 http://zhidao.baidu.com/link?url=07NsUCYjlwgZFGwfyhqq9NxVTk7hVXs7yBAZAyChUU_CPFIZ_WjwusNVPD7CDC1vjFVaMMTGFwp-H8tnfQb9Qa

代码-执行存储过程的结果如何合并成一个表,急急急!

问题描述 执行存储过程的结果如何合并成一个表,急急急! 以上是存储过程执行后的结果,能否合并成一个表格(如下图的结果),该如何写代码? 解决方案 就像你最后写的那样,用union语句

myeclipse10里面的一个错误!急急急!急急急!急急急!

问题描述 Multipleannotationsfoundatthisline:-Missingsemicolon-Syntaxerror,insert"}"tocompleteBlock全是jsp文件里全是按钮这个错误.怎么弄啊?求大神!急急急! 解决方案 解决方案二: 解决方案三:重新编译一下,这种问题不影响,是myeclipse语法检查的问题.解决方案四:在IDE中,project-->clean...解决方案五:直接全选剪切,保存,黏贴,保存解决方案六:不影响运行,你就可

一个可用的azure账号,用vs的服务资源管理器登陆。。。找不到账户

问题描述 一个可用的azure账号,用vs的服务资源管理器登陆...找不到账户 请教大家一个问题 ,一个可用的azure账号,用vs的服务资源管理器登陆,提示 找不到具有该点子邮件地址的账户该怎么解决 解决方案 你用的是山寨的azure还是微软的azure,xx互联的山寨azure当然vs和微软都是不承认的. 解决方案二: Hi 对于中国版Azure来说,不是使用Microsoft Account(Live ID)来验证访问权限的,所以默认在Visual Studio中是无法登陆中国版Azure

用mfc编写一个windows文件资源管理器

问题描述 用mfc编写一个windows文件资源管理器 需要创建几个类,以及怎样封装哪些函数及数据 解决方案 http://download.csdn.net/download/mingyuan0826/2716853 解决方案二: VS2008SP1的有个Samples文件下的Explorer能实现类似的效果. ...Samples1033AllVCLanguageSamplesC++MFCVisual C++ 2008 Feature PackExplorer 解决方案三: 还有请问左右视图

请教大家一个问题 ,一个可用的azure账号,用vs的服务资源管理器登陆

问题描述 请教大家一个问题 ,一个可用的azure账号,用vs的服务资源管理器登陆 请教大家一个问题 ,一个可用的azure账号,用vs的服务资源管理器登陆,提示 找不到具有该点子邮件地址的账户 解决方案 你是没有subscription吧,中文叫订阅貌似. 解决方案二: Hi, 因为中国版Azure不是使用Microsoft Account(Live ID)来验证访问权限,如果是想通过VS去管理中国版的Azure的话,我建议你尝试这篇文章中的操作:http://www.cnblogs.com/

请教如何用c#实现一个功能,能让右键点击资源管理器某个文件时,出现菜单选项卡,类似于装了winrar后,右键某个文件时,出现"添加到压缩文件..."

问题描述 您好,请教如何用c#实现一个功能,能让右键点击资源管理器某个文件时,出现菜单选项卡,类似于装了winrar后,右键某个文件时,出现"添加到压缩文件..."目前项目急需这样的功能,如果可以请写出类似代码或者提供思路,非常感谢!! 解决方案 解决方案二:Shell扩展编程解决方案三:http://www.codeproject.com/KB/shell/shellextguide1.aspx这里有一整套的资料.解决方案四:sign解决方案五:contextmenustrip?解决

我的系统是windows 2003r2,MQ(windows)server版,为什么我的MQ资源管理器启动不起来,只停留在一个最初的一个画面上

问题描述 我的系统是windows2003,MQ(windows)server版,为什么我的MQ资源管理器启动不起来,只停留在一个最初的一个画面上,而且重新再点,说资源管理器已经在运行了.我已经装了卸,卸了装n遍了,还是不行,我快崩溃了,请各位达人知道一下吧,我真的不想重装机器再试一次!!!!