一: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