C语言也能干大事 第七节 笔记

一:fopen中文件路径问题

 case ID_open:
{

FILE *fp = fopen("E:\\CODE\\Win32 DialogBased Application26\\a.txt","r");
char line[256];
fgets(line,sizeof(line),fp);
fclose(fp);
SetDlgItemText(hwnd,IDC_EDIT1,TEXT(line));


}

fpen好久没用了,当初学文件操作时也学得很肤浅,长时间不用忘得也快。。。

发现个不知道怪异的问题:这个路径,写成E:\\CODE\\Win32 DialogBased Application26\\a.txt也对,写成

E:\CODE\Win32 DialogBased Application26\a.txt编译链接都没问题,运行时却出错。所以要把单斜杠"\"换成双斜杠"\\"当我想起PHP中的写法时,E:/CODE/Win32 DialogBased Application26/a.txt这样写也是对的。。。

二:RichEdit 控件用法

最近正在做的计算器用的是Edit Control控件,但里边的字体神马的不知道怎么调,或许用这个RichEdit最好

这个控件很强大还可以加gif之类的,过几天做计算器时再学。。。

http://hi.baidu.com/zltpc007/blog/item/49969c5c634b7146faf2c051.html

三: ZeroMemory 与memset

VOID ZeroMemory(
  PVOID Destination,  // memory block
  SIZE_T Length       // size of memory block
);
ZeroMemory 相当于memset的特殊情况,把数据设为0,memset也可以初始化其它值,但要记住。memset是按照字节初始化的

四:GetOpenFileName 函数

BOOL GetOpenFileName( 
LPOPENFILENAME lpofn);
lpofn  [in] long pointer to an OPENFILENAME structure that contains information used to initialize the dialog box .When GetOpenFileName returns, this structure contains information about the user’s file selection. 
OPENFILENAME 

typedef struct tagOFN { /* ofn */
DWORD lStructSize;
HWND hwndOwner;
HINSTANCE hInstance;
LPCSTR lpstrFilter;
LPSTR lpstrCustomFilter;
DWORD nMaxCustFilter;
DWORD nFilterIndex;   //默认选择第几个过滤器,从1开始的,。。。试试就知道
LPSTR lpstrFile;
DWORD nMaxFile;
LPSTR lpstrFileTitle;
DWORD nMaxFileTitle;
LPSTR lpstrInitialDir;
LPCSTR lpstrTitle;
DWORD Flags;
WORD nFileOffset;
WORD nFileExtension;
LPCSTR lpstrDefExt;
DWORD lCustData;
LPOFNHOOKPROC lpfnHook;
LPCSTR lpTemplateName;
} OPENFILENAME;
第四个参数:lpstrCustomFilter 文件类型过滤器

eg: 

OPENFILENAME ofn;
ofn.lpstrFilter = TEXT("ALL\0*.*\0TEXT\0*.TXT\0");
用"\0"分割出几个段,每段是一组过滤器,每组的第一个段代表过滤器的显示值,而第二段代表真正的过滤器。
*.* 代表所有文件
*.txt就代表所有文本文件
abc*.*就代表以abc开头的文件
abc*.txt就代表所有以abc开头的文本文件(txt)
就比如我再加一个
TEXT("ALL\0*.*\0TEXT\0*.TXT\0C++\0*.cpp\0");
这样执行时,会在下边选项列表中显示" ALL     TEXT   C++ "而当选中C++时,大窗口会字出现后缀明为.cpp的文件目录
第五:
以上操作子只能打开一个文件,比如,在做播放器时,怎么读取多个文件呢?
参考
http://xxkkff.blog.51cto.com/162016/26222



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值