目录

C++知识点(二)

C++类与对象

CEdit类

为Edit控件关联变量

CString类

CString 成员函数用法 // CStringA,CStringW

CString::GetBuffer //获取字符串地址 char*或者wchar_t*

CString::Format格式化函数 //类似printf

CString::Empty() //清空

CString::GetLength() //返回字符串长度 字节数

CString::IsEmpty() //判断字符串是否为空

CString::LoadString(资源ID) //加载资源字符串

CDialogEx类

CButton类

结构体与联合体(联合类型)

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
struct 结构类型
{
	int n;
	char s[1];
	double d;
}结构类型;

union 联合类型1
{
  int n;
  char s[1];	//12
	double d;
}联合类型A;

typedef union 联合类型2
{
  int n;
	char s[5];
  double d;
  float a;
}联合类型B; 
//   加typedef的话,联合类型B就是别名
// 不加typedef的话,联合类型B就是全局变量
// union 联合类型 所有成员共享一片内存,大小的话,以最大成员需求为准

lstrcpy 与 _tcscpy 拷贝字符串

lstrcpy 既能作用于ASCII又能用于UNICODE, 兼容宏

1
2
3
4
5
#ifdef UNICODE
#define lstrcpy IstrepyW
#else
#define lstrepy lstrepyA
#endif // !UNICODE

_tcscpy

MessageBox MessageBoxA MessageBoxW

Istropy IstrepyA IstrepyW

枚举 enum

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19

enum EColor
{
	RED,
	GREEN,
	BLUE
};
 
EColor eColor = RED;

//=====================================================
enum class EColor
{
	RED,
	GREEN,
	BLUE
};
 
EColor eColor = EColor::RED;

switch语句

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
switch(expression){
    case constant-expression  :
       statement(s);
       break; //optional
    case constant-expression  :
       statement(s);
       break; //optional
  
    // you can have any number of case statements.
    default : //Optional
       statement(s);
}

实例

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#include <iostream>
using namespace std;
 
int main ()
{
   // local variable declaration:
   char grade = 'D';

   switch(grade)
   {
   case 'A' :
      cout << "Excellent!" << endl; 
      break;
   case 'B' :
   case 'C' :
      cout << "Well done" << endl;
      break;
   case 'D' :
      cout << "You passed" << endl;
      break;
   case 'F' :
      cout << "Better try again" << endl;
      break;
   default :
      cout << "Invalid grade" << endl;
   }
   cout << "Your grade is " << grade << endl;
 
   return 0;
}

状态机

 1
 2
 3
 4
 5
 6
 7
 8
 9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
enum class 状态机标志位
{
  EN_状态机标志_学技术
  EN_状态机标志_开始上班
  EN_状态机标志_写代码
  EN_状态机标志_做项目
  EN_状态机标志_修BUG
  EN_状态机标志_测试
  EN_状态机标志_把项目卖给客户
  EN_快态机标志_公司挣了1个亿
  EN_状态机标志_老板给我升职加薪
};

void FunTest(状态机标志位 状态)
{
  switch(状态)
  {
    case 状态机标志位::EN_状态机标志_学技术:
      break;
    case 状态机标志位::EN_状态机标志_开始上班:
    	break;
    case 状态机标志位::EN_狀态机标志_写代码:
    	break;
    case 状态机标志位::EN_状态机标志_做项目:
    	break;
    case 状态机标志位::EN_状态机标志_修BUG:
    	break;
    case 状态机标志位::EN_状态机标志_测试:
    	break;
    case 状态机标志位::EN_状态机标志_把项目卖给客户:
    	break;
    case 状态机标志位::EN_状态机标志_公司挣了1个亿:
   	 	break;
    case 状态机标志位::EN_状态机标志_老板给我升职加薪:
    	break;
    default:
      break;
  }  
}