这个问题从前没注意过,最近的项目的数据库是另一个人建的,然后让我做查询部分,结果这斯用数字开头作为表名,搞得我那个焦头烂额啊!差点没郁闷死,怎么调试都是错误。后来无意中才注意到是因为表名或者字段名都不能用数字开头,如果非用数字开头在写查询语句时应在表名或字段名上加上[]! 唉,看来细节一点也不能马虎。
在使用Date Time Picker控件时需要响应日期改变的事件,这才发现如果是使用弹出的日期列表选中的时间,这个响应函数会进入两次。正纳闷中在CSDN搜索到这个问题的一个解法,很实用。通过这段代码也大概可以了解到为什么MFC会调用它两次了。
void CXXXOLEDlg::OnDatetimechangeDateFrom(NMHDR* pNMHDR, LRESULT* pResult)
{
*pResult = 0;
static BOOL bOK=TRUE;
#if 1//判断是否有CMonthCalCtrl,若有会发送两次Change,截第二次即可
CDateTimeCtrl* pCtrl = (CDateTimeCtrl*) GetDlgItem(IDC_DATETIMEPICKER1);
ASSERT(pCtrl != NULL);
CMonthCalCtrl* pMoCalCtrl = pCtrl->GetMonthCalCtrl();
if(pMoCalCtrl != NULL)
bOK = !bOK;
#endif
if(bOK)
AfxMessageBox("");
}
1 BOOL AddtoFile(LPCTSTR pPathDest,LPCTSTR pPathSrc,CString& str)
2 {
3 BOOL bTrue = FALSE;
4 CFile pFile1;
5 if (pFile1.Open(pPathSrc,CFile::modeReadWrite))
6 {
7 pFile1.SeekToEnd();
8 int iLength = str.GetLength();
9 pFile1.Write(str.GetBuffer(iLength),iLength);
10 iLength = pFile1.GetLength();
11 char * pp = new char[length];
12 memset(pp,0,length);
13 pFile1.SeekToBegin();
14 pFile1.ReadHuge(pp,length);
15 CFile pFile2;
16 if (pFile2.Open(pPathDest,CFile::modeCreate|CFile::modeReadWrite))
17 {
18 pFile2.SeekToBegin();
19 pFile2.WriteHuge(pp,length);
20 bTrue = TRUE;
21 }
22 pFile2.Close();
23 delete []pp;
24 }
25 pFile1.Close();
26
27 return bTrue;;
28 }
这段代码是文件
pPathSrc内容增加一个字符串并拷贝到文件pPathDest中
是否可以将代码改的跟简洁一些呢?