现在的位置: 首页 > 综合 > 正文

MFC 常用功能汇总

2017年12月23日 ⁄ 综合 ⁄ 共 2399字 ⁄ 字号 评论关闭

所有内容均来源于网络:

(一)文件操作:

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

抱歉!评论已关闭.