求大神见教呀 使用richededit控件 编的记事本程序 打开TXT文件 只显示了第一行
求大神指教呀 使用richededit控件 编的记事本程序 打开TXT文件 只显示了第一行
DWORD CALLBACK callback(DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)
{
FILE* ofile=(FILE*)dwCookie; //文件指针
char get;
LONG i=0;
while ((get=fgetc(ofile))!=EOF && (i++)<cb)
{
*(pbBuff++)=get; //数据写入pbBuff缓冲区。cb写入最大值
}
*pcb=i;
MessageBox(NULL,(const char *)pbBuff,TEXT(""),MB_OK); //实际写入大小
return 0;
}
case IDC_OPEN:
{OPENFILENAME ofn;
char szFile[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.lpstrFile=szFile;
ofn.lpstrFile[0]=TEXT('\0');
ofn.nMaxFile=sizeof(szFile);
ofn.lpstrFilter=TEXT("ALL\0*.*\0TEXT\0*.TXT\0");
ofn.nFilterIndex=2;
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle=0;
ofn.lpstrInitialDir=NULL;
ofn.hwndOwner=hwnd;
ofn.Flags=OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn))
{
FILE *txtaddress=fopen(szFile,"r");
EDITSTREAM stream;
stream.dwCookie=(DWORD)txtaddress;
stream.dwError=0;
stream.pfnCallback=callback;
//SendDlgItemMessage(hwnd,IDC_RICHEDIT1,EM_STREAMIN,SF_TEXT,(LPARAM)&stream);
HWND hand=GetDlgItem(hwnd,IDC_RICHEDIT1);
//SendMessage(hand,EM_SETEVENTMASK,0,ENM_SELCHANGE|ENM_MOUSEEVENTS|ENM_CHANGE|ENM_KEYEVENTS|ENM_SCROLL|ENM_DROPFILES);
//SendMessage(hand,EM_EXLIMITTEXT,0,-1);
SendMessage(hand,EM_STREAMIN,SF_TEXT,(LPARAM)&stream);
//fclose(txtaddress);
------解决思路----------------------
richededit控件的MultiLines属性设置为True?
DWORD CALLBACK callback(DWORD dwCookie,LPBYTE pbBuff,LONG cb,LONG *pcb)
{
FILE* ofile=(FILE*)dwCookie; //文件指针
char get;
LONG i=0;
while ((get=fgetc(ofile))!=EOF && (i++)<cb)
{
*(pbBuff++)=get; //数据写入pbBuff缓冲区。cb写入最大值
}
*pcb=i;
MessageBox(NULL,(const char *)pbBuff,TEXT(""),MB_OK); //实际写入大小
return 0;
}
case IDC_OPEN:
{OPENFILENAME ofn;
char szFile[MAX_PATH];
ZeroMemory(&ofn,sizeof(ofn));
ofn.lStructSize=sizeof(ofn);
ofn.lpstrFile=szFile;
ofn.lpstrFile[0]=TEXT('\0');
ofn.nMaxFile=sizeof(szFile);
ofn.lpstrFilter=TEXT("ALL\0*.*\0TEXT\0*.TXT\0");
ofn.nFilterIndex=2;
ofn.lpstrFileTitle=NULL;
ofn.nMaxFileTitle=0;
ofn.lpstrInitialDir=NULL;
ofn.hwndOwner=hwnd;
ofn.Flags=OFN_EXPLORER|OFN_PATHMUSTEXIST|OFN_FILEMUSTEXIST;
if(GetOpenFileName(&ofn))
{
FILE *txtaddress=fopen(szFile,"r");
EDITSTREAM stream;
stream.dwCookie=(DWORD)txtaddress;
stream.dwError=0;
stream.pfnCallback=callback;
//SendDlgItemMessage(hwnd,IDC_RICHEDIT1,EM_STREAMIN,SF_TEXT,(LPARAM)&stream);
HWND hand=GetDlgItem(hwnd,IDC_RICHEDIT1);
//SendMessage(hand,EM_SETEVENTMASK,0,ENM_SELCHANGE|ENM_MOUSEEVENTS|ENM_CHANGE|ENM_KEYEVENTS|ENM_SCROLL|ENM_DROPFILES);
//SendMessage(hand,EM_EXLIMITTEXT,0,-1);
SendMessage(hand,EM_STREAMIN,SF_TEXT,(LPARAM)&stream);
//fclose(txtaddress);
------解决思路----------------------
richededit控件的MultiLines属性设置为True?