LPCTSTR类型(C++/MFC)

原文链接:https://blog.csdn.net/zxia1/article/details/3866641

LPCTSTR类型

L表示long指针 这是为了兼容Windows 3.1等16位操作系统遗留下来的,在win32中以及其他的32为操作系统中, long指针和near指针及far修饰符都是为了兼容的作用。没有实际意义。

P表示这是一个指针;C表示是一个常量;T表示在Win32环境中,有一个_T宏,这个宏用来表示你的字符是否使用UNICODE, 如果你的程序定义了UNICODE或者其他相关的宏,那么这个字符或者字符串将被作为UNICODE字符串,否则就是标准的ANSI字符串。

STR表示这个变量是一个字符串

所以LPCTSTR就表示一个指向常固定地址的可以根据一些宏定义改变语义的字符串。

同样, LPCSTR就只能是一个ANSI字符串,在程序中我们大部分时间要使用带T的类型定义。

LPCTSTR == const TCHAR *==const char *

LPCSTR与char的区别

在美国国家标准下,LPCTSTR为const char *,是常量,不可修改;而char,是变量,可以修改。两者的存储位置是不同的,如果强制转换的话,不安全。
————————————————
原文链接:https://blog.csdn.net/zxia1/article/details/3866641

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
MFC(Microsoft Foundation Class)是微软公司开发的一套基于C++的图形用户界面(GUI)类库,可以用于开发Windows平台的应用程序。下面是一个简单的学生成绩管理系统的示例代码: 首先,需要创建一个MFC框架的应用程序,并添加以下几个控件: 1. 一个编辑框(IDC_EDIT_NAME),用于输入学生姓名 2. 一个下拉列表框(IDC_COMBO_SUBJECT),用于选择科目 3. 一个编辑框(IDC_EDIT_SCORE),用于输入成绩 4. 一个列表框(IDC_LIST_RESULT),用于显示查询结果 在头文件中定义如下变量和函数: ```cpp class CMyDlg : public CDialogEx { public: CMyDlg(CWnd* pParent = nullptr); // 标准构造函数 enum { IDD = IDD_MY_DIALOG }; protected: HICON m_hIcon; CString m_strName; // 学生姓名 CString m_strSubject; // 科目 int m_nScore; // 成绩 CArray<CString, CString> m_arrSubjects; // 存储科目名称的数组 virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV 支持 DECLARE_MESSAGE_MAP() public: afx_msg void OnBnClickedBtnAdd(); afx_msg void OnBnClickedBtnQuery(); virtual BOOL OnInitDialog(); }; ``` 在实现文件中定义如下函数: ```cpp BOOL CMyDlg::OnInitDialog() { CDialogEx::OnInitDialog(); // 设置图标 SetIcon(m_hIcon, TRUE); // 设置大图标 SetIcon(m_hIcon, FALSE); // 设置小图标 // 添加科目到下拉列表框中 m_arrSubjects.Add(_T("语文")); m_arrSubjects.Add(_T("数学")); m_arrSubjects.Add(_T("英语")); for (int i = 0; i < m_arrSubjects.GetSize(); i++) { GetDlgItem(IDC_COMBO_SUBJECT)->SendMessage(CB_ADDSTRING, 0, (LPARAM)(LPCTSTR)m_arrSubjects[i]); } return TRUE; // 除非将焦点设置到控件,否则返回 TRUE } void CMyDlg::DoDataExchange(CDataExchange* pDX) { CDialogEx::DoDataExchange(pDX); DDX_Text(pDX, IDC_EDIT_NAME, m_strName); DDX_CBString(pDX, IDC_COMBO_SUBJECT, m_strSubject); DDX_Text(pDX, IDC_EDIT_SCORE, m_nScore); DDX_Control(pDX, IDC_LIST_RESULT, m_lstResult); } void CMyDlg::OnBnClickedBtnAdd() { // 添加学生成绩 m_lstResult.AddString(m_strName + _T(" ") + m_strSubject + _T(" ") + CString(m_nScore)); } void CMyDlg::OnBnClickedBtnQuery() { // 查询学生成绩 m_lstResult.ResetContent(); for (int i = 0; i < m_lstResult.GetCount(); i++) { CString strItem; m_lstResult.GetText(i, strItem); if (strItem.Find(m_strName) >= 0 && strItem.Find(m_strSubject) >= 0) { m_lstResult.AddString(strItem); } } } ``` 在对话框类中添加控件的响应函数: ```cpp void CMyDlg::OnBnClickedBtnAdd() { UpdateData(TRUE); OnBnClickedBtnAdd(); } void CMyDlg::OnBnClickedBtnQuery() { UpdateData(TRUE); OnBnClickedBtnQuery(); } ``` 这样就完成了一个简单的学生成绩管理系统的开发。当用户输入学生姓名、选择科目、输入成绩后,点击“添加”按钮,学生成绩就会显示在列表框中。当用户输入学生姓名、选择科目后,点击“查询”按钮,系统会在列表框中显示符合条件的学生成绩。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值