windows编程之七文本编辑器的操作

视频链接:http://www.rupeng.com/forum/thread-8803-1-2.html

1.打开指定文件,读取内容到文本框
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case ID_OPEN:
		{
			FILE *fp = fopen("c:/1.txt","r");
			TCHAR line[256];
			fgets(line,sizeof(line),fp);
			fclose(fp);
			SetDlgItemText(hwnd,IDC_EDIT1,line);
		}
        break;
        default:
		break;
    }
}
 
2.打开一个文件,关键代码:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
		{
			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 = 1;


			ofn.lpstrFileTitle = NULL;


			ofn.nMaxFileTitle = 0;


			ofn.lpstrInitialDir = NULL;
			ofn.hwndOwner = hwnd;//自学能力、探索能力、猜测能力


			ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST;


			if (GetOpenFileName(&ofn))
			{
					//MessageBox(NULL,szFile,"",MB_OK);
				FILE *fp=fopen(szFile,"r");
				TCHAR line[256];
				fgets(line,sizeof(line),fp);
				fclose(fp);
				SetDlgItemText(hwnd,IDC_EDIT1,line);


			}
		}
        break;
        default:
		break;
    }
}
 
2.打开多个文件,关键代码:
void Main_OnCommand(HWND hwnd, int id, HWND hwndCtl, UINT codeNotify)
{
    switch(id)
    {
        case IDC_OK:
		{
			OPENFILENAME ofn;


			TCHAR szFile[MAX_PATH];
			TCHAR szPath[MAX_PATH];
			TCHAR szFileName[80*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 = 1;


			ofn.lpstrFileTitle = NULL;


			ofn.nMaxFileTitle = 0;


			ofn.lpstrInitialDir = NULL;
			ofn.hwndOwner = hwnd;//自学能力、探索能力、猜测能力


			ofn.Flags = OFN_EXPLORER |OFN_PATHMUSTEXIST | OFN_FILEMUSTEXIST | OFN_ALLOWMULTISELECT;


			if (GetOpenFileName(&ofn))
			{
					//MessageBox(NULL,szFile,"",MB_OK);
				lstrcpyn(szPath, szPath, ofn.nFileOffset );
				szPath[ ofn.nFileOffset ] = '\0';
				int nLen = lstrlen(szPath);
				if( szPath[nLen-1] != '\\' )   //如果选了多个文件,则必须加上'\\'
				{
				    lstrcat(szPath, TEXT("\\"));
				}
				  
				TCHAR* p; 
				p= szPath + ofn.nFileOffset; //把指针移到第一个文件
				  
				ZeroMemory(szFileName, sizeof(szFileName));
				while( *p )
				{   
				    lstrcat(szFileName, szPath);  //给文件名加上路径  
				    lstrcat(szFileName, p);    //加上文件名  
				    lstrcat(szFileName, TEXT("\n")); //换行   
				    p += lstrlen(p) +1;     //移至下一个文件
				 }


			}
		}
        break;
        default:
		break;
    }
}
 
总结:文件的操作比较复杂,但是对于我们初学者而言,目前只要知道如何使用就足够了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值