BOOL FileRead(HWND hwndEdit,PTSTR ptstrFileName )
{
DWORD dwByteRead;
HANDLE hFile;
int FileSize;
PBYTE pbyte;
PTSTR ptext;
BOOL ok;
if(
INVALID_HANDLE_VALUE==(hFile=
CreateFile(
ptstrFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL
)
)
)
return false;
FileSize=GetFileSize(hFile,NULL);
if(FileSize)
{
CloseHandle(hFile);
return NULL;
}
ok=ReadFile(hFile,&pbyte,FileSize,&dwByteRead,NULL) ;
ptext=(PTSTR)malloc(FileSize+1);
lstrcpy((PTSTR)ptext,(PTSTR)pbyte);
SetWindowText(hwndEdit,(PTSTR)ptext);
return ok;
}
{
DWORD dwByteRead;
HANDLE hFile;
int FileSize;
PBYTE pbyte;
PTSTR ptext;
BOOL ok;
if(
INVALID_HANDLE_VALUE==(hFile=
CreateFile(
ptstrFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL
)
)
)
return false;
FileSize=GetFileSize(hFile,NULL);
if(FileSize)
{
CloseHandle(hFile);
return NULL;
}
ok=ReadFile(hFile,&pbyte,FileSize,&dwByteRead,NULL) ;
ptext=(PTSTR)malloc(FileSize+1);
lstrcpy((PTSTR)ptext,(PTSTR)pbyte);
SetWindowText(hwndEdit,(PTSTR)ptext);
return ok;
}
解决方案 »
- xWidgets 编译, 工程部署, 自动build, 完整build 和设置工程
- 如何实现类似Photoshop图层选择框的界面
- 刚用自学完的VB编完自用的第一个程序,现在想学其它语言,是不是VC++好,看什么书呢,希望大家给个建议,谢谢
- MFC:如何让windows窗口大小不可改变。。
- 如何屏蔽alt+f4
- 初学者紧急求助
- 关于一个如何得到盘符信息的问题?
- 请问PSP,TSP是做什么用的?
- 怎样想视图类发送消息——刷新视图
- 对话框中如何显示Access中的图片?急!!
- (高手请进)请问怎么隐藏弹出的系统属性对话框。
- 在基于Dialog的控件中导入可操作电子地图,用ActiveX控件能实现吗?
{
CloseHandle(hFile);
return NULL;
}
ok=ReadFile(hFile,ptext,FileSize,&dwByteRead,NULL) ;
#include<windows.h>
#include<tchar.h>
#include<commdlg.h>
#include "resource.h"
#define UNICODE OPENFILENAME ofn;
static TCHAR szFilter[] = TEXT ("Txt Files (*.TXT)\0*.txt\0") \
TEXT ("All Files (*.*)\0*.*\0\0") ;
static TCHAR szTitleName[MAX_PATH],szFileName[MAX_PATH];
static TCHAR szAppName[]=TEXT("EDIT");
//
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM);
//
BOOL FileRead(HWND hwndEdit,PTSTR ptstrFileName )
{
DWORD dwByteRead;
HANDLE hFile;
int FileSize;
PBYTE pbyte;
// PTSTR ptext;
BOOL ok;
if(
INVALID_HANDLE_VALUE==(hFile=
CreateFile(
ptstrFileName,GENERIC_READ,FILE_SHARE_READ,NULL,OPEN_EXISTING,0,NULL
)
)
)
return false;
FileSize=GetFileSize(hFile,NULL);
if(FileSize==0)
{
CloseHandle(hFile);
return NULL;
}
char *ptext=(PTSTR)malloc(FileSize+1);
ok=ReadFile(hFile,ptext,FileSize,&dwByteRead,NULL) ;
ptext=(PTSTR)malloc(FileSize+1);
lstrcpy((PTSTR)ptext,(PTSTR)pbyte);
SetWindowText(hwndEdit,(PTSTR)ptext);
return ok;
}
int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowComd)
{
HACCEL hAccel;
HWND hwnd;
WNDCLASS wndclass;
MSG msg;
wndclass.style=CS_HREDRAW|CS_VREDRAW;
wndclass.lpszMenuName=szAppName;
wndclass.lpszClassName=szAppName;
wndclass.lpfnWndProc=WndProc;
wndclass.hInstance=hInstance;
wndclass.hIcon=LoadIcon(NULL,IDI_APPLICATION);
wndclass.hCursor=LoadCursor(NULL,IDC_ARROW);
wndclass.hbrBackground=(HBRUSH)GetStockObject(WHITE_BRUSH);
wndclass.cbWndExtra=0;
wndclass.cbClsExtra=0;
if(!RegisterClass(&wndclass) )
{
MessageBox(NULL,szAppName,TEXT("Oh,NO!"),MB_ICONERROR);
return 0;
}
hwnd=CreateWindow(szAppName,TEXT("edit"),
WS_OVERLAPPEDWINDOW,
CW_USEDEFAULT,CW_USEDEFAULT,
CW_USEDEFAULT,CW_USEDEFAULT,
NULL,NULL,hInstance,NULL);
ShowWindow(hwnd,nShowComd);
UpdateWindow(hwnd);
hAccel=LoadAccelerators(hInstance,TEXT("IDR_ACCELERATOR1"));
while(GetMessage(&msg,NULL,0,0) )
{
if(!TranslateAccelerator(hwnd,hAccel,&msg))
{
TranslateMessage(&msg);
DispatchMessage(&msg);
}
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam)
{
static HWND hwndEdit;
HINSTANCE hInstance;
int iSelect,iEnable;
switch(message)
{
case WM_CREATE:
hInstance=((LPCREATESTRUCT)lParam)->hInstance;
hwndEdit=CreateWindow(szAppName,NULL,
WS_CHILD|WS_VISIBLE|WS_HSCROLL|WS_VSCROLL|
WS_BORDER|ES_LEFT|ES_MULTILINE|
ES_AUTOVSCROLL|ES_AUTOHSCROLL,
CW_USEDEFAULT,0,CW_USEDEFAULT,0,hwnd,(HMENU)1,
/*((LPCREATESTRUCT)lParam)-> */hInstance,NULL);
hInstance=((LPCREATESTRUCT)lParam)->hInstance;
ofn.lStructSize = sizeof (OPENFILENAME) ;
ofn.hwndOwner = hwnd ;
ofn.hInstance = NULL ;
ofn.lpstrFilter = szFilter ;
ofn.lpstrCustomFilter = NULL ;
ofn.nMaxCustFilter = 0 ;
ofn.nFilterIndex = 0 ;
ofn.lpstrFile = szTitleName ; // Set
ofn.nMaxFile = MAX_PATH ;
ofn.lpstrFileTitle = szFileName ; // Set
ofn.nMaxFileTitle = MAX_PATH ;
ofn.lpstrInitialDir = NULL ;
ofn.lpstrTitle = NULL ;
ofn.Flags = OFN_CREATEPROMPT|OFN_HIDEREADONLY ; // Set
ofn.nFileOffset = 0 ;
ofn.nFileExtension = 0 ;
ofn.lpstrDefExt = TEXT ("txt") ;
ofn.lCustData = 0 ;
ofn.lpfnHook = NULL ;
ofn.lpTemplateName = NULL ;
return 0;
case WM_SETFOCUS:
SetFocus(hwndEdit);
return 0;
case WM_SIZE:
MoveWindow(hwndEdit,0,0,LOWORD(lParam),HIWORD(lParam),TRUE);
return 0;
case WM_INITMENUPOPUP:
EnableMenuItem((HMENU)wParam,IDM_EDIT_PASTE,
IsClipboardFormatAvailable(CF_TEXT)?MF_ENABLED:MF_GRAYED);
iSelect=SendMessage(hwndEdit,EM_GETSEL,0,0);
if(HIWORD(iSelect)==LOWORD(iSelect))
iEnable=MF_GRAYED;
else
iEnable=MF_ENABLED;
EnableMenuItem((HMENU)wParam,IDM_EDIT_CUT,iEnable);
EnableMenuItem((HMENU)wParam,IDM_EDIT_COPY,iEnable);
break;
case WM_COMMAND:
if(lParam)
{
if(LOWORD(wParam)==1 &&HIWORD(wParam)==EN_ERRSPACE||
HIWORD(wParam)==EN_MAXTEXT)
MessageBox(hwnd,TEXT("OH!"),szAppName,MB_OK|MB_ICONSTOP);
return 0;
}
else switch(LOWORD(wParam))
{
case IDM_EDIT_CUT:
SendMessage(hwndEdit,WM_CUT,0,0);
return 0;
case IDM_EDIT_PASTE:
SendMessage(hwndEdit,WM_PASTE,0,0);
return 0;
case IDM_EDIT_SELECT_ALL:
SendMessage(hwndEdit,EM_SETSEL,0,-1);
return 0;
case IDM_FILE_OPEN:
if (GetOpenFileName(&ofn) )
FileRead( hwndEdit,szFileName ) ;
return 0;
}
break;
case WM_DESTROY:
PostQuitMessage(0);
return 0;
}
return DefWindowProc(hwnd,message,wParam,lParam);
}
但是还是没有用啊
if(FileSize)
{
CloseHandle(hFile);
return NULL;
}
pbyte = (PBYTE)malloc(FileSize +1);
ok=ReadFile(hFile,&pbyte,FileSize,&dwByteRead,NULL);
pbyte[dwByteRead] = 0;
SetWindowText(hwndEdit,(PTSTR)pbyte);
free[pbyte];
return ok;
用RichEdit,或换个小的试试,是不是文件太大了啊