所有内容均来源于网络:
(一)文件操作:
1、文件查找、复制与删除 :DeleteDirectory/DeleteFile/CopyFile/CFileDialog/CFileFind http://blog.csdn.net/limingshandian/article/details/7823264
2、遍历目录下文件: http://blog.csdn.net/abcjennifer/article/details/18147551#comments
3、归档:
4、文件属性: CFile::GetStatus(LPCTSTR lpszFileName,CFileStatus& rStatus)
http://bfpz.blog.163.com/blog/static/19111351220116240309997/
5、文件或文件夹是否存在:PathFileExists ,需要shlwapi.lib
6、选择文件或文件夹: CMFCEditBrowseCtrl 可采用该控件。设置属性以确定是浏览文件,还是文件夹, GetWindowsText得到对应的值。
(二)消息机制:
1、 afx_msg LRESULT OnTestingNotification(WPARAM wParam, LPARAM lParam);
2、ON_REGISTERED_MESSAGE( UWM_TESTING_NOTIFICATION, &CDlgMonitorModel::OnTestingNotification )
3、const UINT UWM_TESTING_NOTIFICATION = ::RegisterWindowMessage(
_T("UWM_TESTING_NOTIFICATION-{86B3253A-79DF-4f7a-87A7-D99E4B275B14}") ); // 这个放到需要使用 UWM_TESTING_NOTIFICATION 的地方,或者放到工程头文件中。
4、::PostMessage( pThis->m_hWndForTestingPosting, UWM_TESTING_NOTIFICATION, 1L, (LPARAM)iPatNum )// 发送消息 ,参数1:接收端m_hWnd,2: 消息类型,3\4:参数
(三)线程(工作线程)
CWinThread* pThread = ::AfxBeginThread( TestingThread, (LPVOID)this, THREAD_PRIORITY_BELOW_NORMAL, 0, CREATE_SUSPENDED, NULL ); if ( pThread == NULL ) { // creation failed; un-do everything return ; } pThread->ResumeThread();
UINT CDlgMonitorModel::TestingThread(LPVOID pVoid) // .cpp 文件static UINT CDlgMonitorModel::TestingThread(LPVOID pVoid); // .h文件必须是 static
(四) CEdit 追加显示,也就是当超过最大行数时,清空。 CEdit 可存储字符数 64k
int LineNum=m_recvCtrl.GetLineCount();
if(LineNum > 100) // 超过最大信息显示行数
{
m_recvCtrl.SetSel(0, -1);
m_recvCtrl.Clear(); // 清空编辑框
}
CTime RevTime = CTime::GetCurrentTime();
CString Temp = RevTime.Format("[%Y/%m/%d %H:%M:%S]: ");
CString strEdit;
m_recvCtrl.GetWindowText(strEdit);
m_recvCtrl.SetSel(strEdit.GetLength(), strEdit.GetLength());
m_recvCtrl.ReplaceSel(Temp + sText + "\n");
http://www.cppblog.com/wanghaiguang/archive/2013/03/01/198156.html
CEdit 控件详细说明:http://hohosoft.com/?p=420
m_ctlEditTestResults.SetLimitText( 660000 );
(五)CView 使用控件:
1、Dialog窗口类型设置成child
2、动态创建窗口和控制显示:
m_dlgMonitorModel.m_pDoc = m_pDoc;
CRect rc;
GetWindowRect( &rc );
AdjustRect( FALSE, &rc );
ScreenToClient( &rc );
m_dlgMonitorModel.Create(IDD_DIALOG_TESTMODEL,this);
m_dlgMonitorModel.MoveWindow(&rc,FALSE);
m_arrHwnd[ii++] = m_dlgMonitorModel.m_hWnd;
::ShowWindow( m_arrHwnd[ ii ], ( ii==defaultShow ? SW_SHOW : SW_HIDE ) );
(六) Release模式调试代码:
设置在Release模式下调试的方法:
1.工程项目上右键 -> 属性
2.c++ -> 常规 -〉调试信息格式 选 程序数据库(/Zi)或(/ZI), 注意:如果是库的话,只能(Zi)
3.c++ -> 优化 -〉优化 选 禁止(/Od)
4.连接器 -〉调试 -〉生成调试信息 选 是 (/DEBUG)
http://blog.csdn.net/huangxy10/article/details/7616633