• MFC可视化


    当你修改了变量的值,而希望对
    话框控件更新显示,就应该在修改变量后调用
    UpdateData(FALSE)
    ;如果你希望知道用户在
    对话框中到底输入了什么,就应该在访问变量前调用
    UpdateData(TRUE)。

    std::string->CString   例子:

    CString strMfc;

    std::string strStl=“test“;

    strMfc=strStl.c_str();

    CString->std::string 例子:

    CString strMfc=“test“;

    std::string strStl;

    strStl=strMfc.GetBuffer(0);

    1、格式化字符串

    CString s;
    s.Format(_T("The num is %d."), i);

    2、转为 int

    转10进制最好用_ttoi(),它在 ANSI 编码系统中被编译成_atoi(),而在 Unicode 编码系统中编译成_wtoi()。用_tcstoul()或者_tcstol()可以把字符串转化成任意进制的(无符号/有符号)长整数。

    CString hex = _T("FAB");
    CString decimal = _T("4011");
    ASSERT(_tcstoul(hex, 0, 16) == _ttoi(decimal));

    int转换为CString

    CString a;

    int b = 0;

    a.Format("%d", b);

    3、转为 char *

    3.1 强制类型转换为 LPCTSTR,不能修改字符串

    LPCTSTR p = s; 或者直接 (LPCTSTR)s;

    3.2 使用 GetBuffer 方法

    不给 GetBuffer 传递参数时它使用默认值 0,意思是:“给我这个字符串的指针,我保证不加长它”。假设你想增加字符串的长度,就必须将你需要的字符空间大小(注意:是字符而不是字节,因为 CString 是以隐含方式感知 Unicode 的)传给它。当调用 ReleaseBuffer 时,字符串的实际长度会被重新计算,然后存入 CString 对象中。
    必须强调一点,在 GetBuffer 和 ReleaseBuffer 之间这个范围,一定不能使用你要操作的这个缓冲的 CString 对象的任何方法。因为 ReleaseBuffer 被调用之前,该 CString 对象的完整性得不到保障。

    LPTSTR p = s.GetBuffer();
    // do something with p
    int m = s.GetLength(); // 可能出错!!!
    s.ReleaseBuffer();
    int n = s.GetLength(); // 保证正确.

    1 分割字符串

    AfxExtractSubString(CString& rString, LPCTSTR lpszFullString, int iSubString, TCHAR chSep = '/n');

    CString csFullString(_T("abcd-efg-hijk-lmn"));
    CString csTemp;
    AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 0, '-'); // 得到 abcd
    AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 1, '-'); // 得到 efg
    AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 2, '-'); // 得到 hijk
    AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 3, '-'); // 得到 lmn

    分隔符可以随便指定:
    AfxExtractSubString(csTemp, (LPCTSTR)csFullString, 0, 'f'); // 得到 abcd-e

     类的成员变量,成员函数默认为private;

    用于输出调试

    #include<windows.h>

    MessageBox(str);

  • 相关阅读:
    分治6--循环比赛日程表
    分治5--一元三次方程求解
    分治4--快速排序
    分治3--黑白棋子的移动
    分治2--取余运算
    分治1--二分查找
    贪心6--整数区间
    贪心5--活动选择
    贪心4--拦截导弹
    贪心3--删数问题
  • 原文地址:https://www.cnblogs.com/XDJjy/p/3807404.html
Copyright © 2020-2023  润新知