1,从那种基本类中继承的函数 变异时都会自动被调用
2,void *memset(void *s,int c,size_t n)
3,DoDataExchange中
4,获得资源文件里Icon的图片
5,void ZeroMemory(
);
The ZeroMemory macro fills a block of memory with zeros.
6,EnableWindow 设置鼠标和键盘对控件的有效性( Enables or disables mouse and keyboard input
((CEdit*)GetDlgItem(IDC_EDTXSBH))->EnableWindow(aValue);
7,wcscpy(string1,string2)复制字符串2到1
8,atoi() 字符型转变为整形
9,第几行=第几项
10,
11,
Cstring转换为 char*类型
//
char*转换为Cstring
//
CString 转为wchar_t*
//long转换为CString
long nPosition = 2343;
CString strTem;
strTem.Format(_T("%ld"),nPosition);
12,
CString 转化为 int
方法 atoi()函数
13,
关于引用做参数的说法:
传递一个引用和传递一个指针是一样的,都是传一个对象的地址过去,而传递一个对象过去的时候,还要重建一个对象,调用这个对象的拷贝构造函数等等,相比来说还是传递饮用和指针来得简单。
一般也不会传递简单类型的引用,除非你想在函数中改变它,这是一个基本的编程规则了。否则你维护程序的成本十分高的。而且象对int,char这样的简单对象,效率上差不了多少。(注)指针作参数好像还需要解引用,需要一点点开销,所以如果参数为非简单类型的对象还是用引用吧
14,
15,
int strcmp(const char *string1,const char *string2)
对比两个字符串
16,
转义字符 描述
\' 单引号
\" 双引号
\\ 反斜杠
\0 空字符
\a 响铃
\b 后退
\f 走纸
\n 换行
\r 回车
\t 水平制表符
\v 垂直制表符
\xnnn 表示十六进制数(nnn)
17,
第二句话如果不加 W2A和A2W是ascll和 wide char之间的转换,加上这句话作用就变成了utf-8和wide char之间的转换
19,
20,关于绘图
GDI 图形设备接口
CDC 设备环境类的基类
CPaintDC类 派生与CDC用于响应windows消息:WM_PAINT
CDC的其他派生类CWindowsDC,CClientDC
CDC的一个重要方法:selectobject 选择"绘图工具对象"
21,清空CComboBox控件中编辑框中内容
22,作参数时:
CString strAAA;
FUN(CString strAAA )
{
}
这种情况下strAAA传进函数,函数对这个值进行了操作,但无论怎么操作都无法改变外边的值因为传进来的strAAA只是个副本
FUN(CString &strAAA)
{
}
这种情况下strAAA传进函数,函数对这个值进行了操作,外面的值也随之改变因为传进来的是个地址,按照这个地址直接操作的变量。
FUN( Const CString &strAAA )
{
}
这种情况下strAAA也是弄了个副本传进函数,但这个函数无法改变这个strAAA
23,
//
tbc.EnableButton(uButtonID,TRUE) ;
又见过其它的两种写法(commandbar和菜单条基本一回事)
/
例:
MR_HeadChooseDlg *headDlg = new MR_HeadChooseDlg;
if (IDOK == headDlg->DoModal())
{
}
break;
注:启动模态对话框方法是DoMoal(),在这个函数执行完之后,对话框弹出。
但程序一直等待到这个模态对话框OnOk()或OnCancle后才执行下一行代码。
例:
CPlaceChooseDlg *m_pProvinceDlg = new CPlaceChooseDlg();
m_pProvinceDlg->Create(IDD_PLACE_CHOOSE_DLG, this);
m_pProvinceDlg->ShowWindow(SW_SHOW);
注:非模态对话框要用Create方法,第一个参数是该窗口资源文件,this是父窗口指针
。在ShowWindow(SW_SHOW)后m_pProvinceDlg启动,父窗口代码会继续向下执行。因为
不好确定用户在何处关掉m_pProvinceDlg所以最好在CPlaceChooseDlg 类内部进行自删除
处理。例:
void CPlaceChooseDlg::PostNcDestroy()
{
}
void CPlaceChooseDlg::OnOK()
{
}
void CPlaceChooseDlg::OnCancel()
{
}
57,
WCHAR strTmp[20] = {0}; 声明一个各元素都为0的数组。
和这个一样:
WCHAR strTemp[20];
memset(strTemp,0,20)
58,编码问题的目前粗略理解:
存储该符号(数字符号,英文符号),当存储双字节字符时就用2个字节存储该符号(汉字或其它复杂文字)。
59,关于MoveWindow坐标问题
两种写法
void MoveWindow( int x, int y, int nWidth, int nHeight, BOOL bRepaint = TRUE );
void MoveWindow( LPCRECT lpRect, BOOL bRepaint = TRUE );
两个函数x,y和lpRect来确定窗口的位置和大小。
简单的说就是:
//CmyDlg dlg;
// dlg.MoveWindow(...);来设定位置和在CmyDlg类中MoveWindow(...)来自身move效果相同。
60,MFC中的UpdateData方法
UpdateData(true);//用于将屏幕上控件中的数据交换到变量中。
UpdateData(false);//用于将数据在屏幕中对应控件中显示出来。
//<注>首先要在DoDataExchange函数中设置关联:DDX_Text(pDX,IDC_PHONENUMBER_STATIC,strPhoneNumber);
另一种方法:
利用CWnd的SetWindowText() 和GetWindowText()来赋值和取值。例:GetDlgItem(IDC_EDIT1)->SetWindowText(str);
还有一对函数是SetDlgItemText和GetDlgItemText
61.IXMLHTTPRequest
MSDN:Provides client-side protocol support for communication with HTTP servers.
This object is integrated with the Microsoft XML Parser (MSXML) to support sending the request body directly from and parsing the response directly into the MSXML DOM objects.
非常好用的一个类使用前先注册这个com组件。
62,RegistryNotifyCallback
63,日志输出
例:
例:
TRACE0、TRACE1、TRACE2、TRACE3 是衍生出来的:
64, UTF-8 和 unicode 互转函数
void utf8ToUnicode(const string& src, wstring& result)
{
}
65,extern作用:引用一个已经定义过的全局变量.