MFC和C#写windows程序

--------------------------------------------

C#写Windows程序更简单,且跟MFC类似,现切换到C#,缺点就是依赖.Net了。

打开一个文件选择框

https://www.cnblogs.com/lotusto/p/5767141.html

https://www.cnblogs.com/tinaluo/p/6636073.html

文本文件的读写:

https://www.cnblogs.com/eniac12/p/4398310.html

FileStream和StreamWriter/Reader的区别:

https://www.cnblogs.com/lyd2016/p/6599550.html

FileStream对象表示在磁盘或网络路径上指向文件的流。这个类提供了在文件中读写字节的方法,但经常使用StreamReader或 StreamWriter执行这些功能。这是因为FileStream类操作的是字节和字节数组,而Stream类操作的是字符数据。

 

ToString()参数中格式解析大全

https://blog.csdn.net/sinat_20559947/article/details/49028625

数字转十六进制字符串:255.ToString("X")

 

C#,int转成string,string转成int

https://www.cnblogs.com/xshy3412/archive/2007/08/29/874362.html

 

--------------------------------------------------------------------

MFC:

有时候要写个小工具给别人用,所以又把MFC用起来了,毕竟做个界面很简单,本文打算用来长期记录一些遇到的小问题和解决方法。

1 mfc选择一个文件,按钮响应中增加:

BOOL isOpen = TRUE;        //是否打开(否则为保存)
    CString defaultDir;// = L"E:\\FileTest";    //默认打开的文件路径
    CString fileName = L"";            //默认打开的文件名
    CString filter = L"文件 (*.txt)|*.txt||";    //文件过虑的类型

    //CFileDialog构造一个CFileDialog对象操作
    CFileDialog openFileDlg(isOpen, defaultDir, fileName, OFN_HIDEREADONLY|OFN_OVERWRITEPROMPT, filter, NULL);

    //openFileDlg.GetOFN().lpstrInitialDir = L"E:\\FileTest\\test.txt";
    //DoModal显示对话框并使用户可以进行选择
    INT_PTR result = openFileDlg.DoModal();
    CString filePath;// = defaultDir + "\\test.txt";

    if(result == IDOK)
    {
        //GetPathName返回选定文件的完整路径
        filePath = openFileDlg.GetPathName();
    }

---------------------------------------------

2 unicode编码下字符串转为整数

long num = 0;

num = _ttoi(temp);

如果不改项目属性中的字符集,默认是unicode编码,字符相关的要加上L或者_T

--------------------------------------

3 长整型转换成字符串:

                CString tmp;
                tmp.Format(_T("%I64X"),number);  

     tmp.Format(_T("%I64d"),number);

------------------------------------

4 打开文件

CStdioFile file;
 CFileException fileException;

if (!file.Open(filePath, CFile::typeText|CFile::modeReadWrite|CFile::shareExclusive,&fileException))

逐行读取

file.SeekToBegin();

while (file.ReadString(cstrLine))

{

}

// 关闭文件
file.Close();

//-----------------------------------------------
// 打开文件参数项
//-----------------------------------------------
CFile::modeCreate
    --- 如果文件不存在则创建,如果文件存在则打开文件并清空文件内容
CFile::modeCreate | CFile::CFile::modeNoTruncate
    --- 如果文件不存在则创建,如果文件存在则打开文件并保留文件内容
CFile::shareDenyNone
    --- 允许其它进程对文件读写
CFile::shareDenyRead
    --- 不允许其它进程对文件进行读操作
CFile::shareDenyWrite
    --- 不允许其它进程对文件进行写操作
CFile::shareExclusive
    --- 以独占模式打开文件,不允许其它进程对文件进行读写

--------------------------------------
6 AfxMessageBox的响应:

            if(IDYES == AfxMessageBox(tips,MB_YESNOCANCEL))
            {
                exit(0);
            }

posted @ 2019-10-11 17:26  LevinKai  阅读(1120)  评论(0编辑  收藏  举报