MFC控件学习

最近开始做一个样例,重新又用到MFC,就把做的内容稍作整理,留作后用。

1.控件richedit2

在界面上添加了richedit2控件后,我给别的空间添加事件响应函数事总是出现错误,提示的内容记不清了,貌似就是非常严重。最后的解决办法就是在InitInstance()函数中添加了AfxInitRichEdit2();原来该控件在使用前需要初始化。

然后添加控件变量m_ctrlEditResult

初始化以及清除内容时时进行了以下操作

m_ctrlEditResult.SetReadOnly(FALSE);
m_ctrlEditResult.SetSel(0, -1);
m_ctrlEditResult.Clear();
m_ctrlEditResult.SetReadOnly(TRUE);
m_ctrlEditResult.SetSel(0, 0);

加入内容时的操作如下:

CTime time = CTime::GetCurrentTime();
CString strTempInfo;
strTempInfo.Format(_T("[%s]%s\n"), time.Format(_T("%Y-%m-%d %H:%M:%S")), strInfo);
m_ctrlEditResult.SetSel(-1, -1);
m_ctrlEditResult.ReplaceSel( strTempInfo );
m_ctrlEditResult.PostMessage(WM_VSCROLL, SB_BOTTOM, 0); 
UpdateData();

2.slider控件

需要给对话框添加消息响应WM_HSCROLL,OnHScroll()。添加控件变量m_osliderPos

涉及操作:

m_oSliderPos.SetRange(0, m_Task.GetEnd());

m_oSliderPos.SetPos(n);

3.combox控件

添加变量m_cmbFrame和CBN_SELCHANGE响应事件。

涉及操作:m_cmbFrame.GetCount();

m_cmbFrame.ResetContent();

m_cmbFrame.AddString(strInfo);
m_cmbFrame.SetItemData(i, (DWORD_PTR)m_vecResult[i]);


m_cmbFrame.SetCurSel(0);

int iSel = m_cmbFrame.GetCurSel(); 

sResult* psInfo = (sResult*)m_cmbFrame.GetItemData(iSel);

4.普通编辑框

a)  CString strLength;
strLength.Format(_T("%d"), m_Task.GetVideoLength());
(GetDlgItem(IDC_FRAME_LENGTH))->SetWindowText(strLength);

b) m_nEndFrame = m_Task.GetVideoLength();(关联变量更新,从后台写入界面)
UpdateData(false);

c) UpdateData(true);//(关联变量更新,从界面写入后台)

5.CFileDialog用法

{

TCHAR szFilter[] = _T("MP4 Files (*.mp4)|*.mp4|\
Avi Files (*.avi)|*.avi|\
 MPG Files (*.mpg)|*.mpg|\
 RM WM Files (*.rm;*.wm)|*.rm;*.wm|\
 TS Files (*.ts)|*.ts|\
 Vob Files (*.vob;*.dat)|*.vob;*.dat|\
 Mov Files (*.mov)|*.mov|\
 All Files (*.*)|*.*||");


CFileDialog dlg(TRUE, _T("mp4|avi|mpg|rm|wm|vob|ts|mov|dat"), NULL, OFN_FILEMUSTEXIST, szFilter, this);


int nRet= (int)dlg.DoModal();
int nFrame  = 1;
// LPBYTE pBuf;


if(nRet == IDOK){
//
//
CString strFileName = dlg.GetPathName();
  }


}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值