1、slider control使用问题
m_slider.SetRange( 0,100);//设置范围
m_slider.SetTicFreq(10);//设置显示刻度的间隔
void CMFCApplication1Dlg::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
UpdateData(TRUE);
CSliderCtrl *slider = (CSliderCtrl*)GetDlgItem(IDC_SLIDER1);
m_int = slider->GetPos();
UpdateData(FALSE);
CDialogEx::OnHScroll(nSBCode, nPos, pScrollBar);
}
以上代码报错:
Severity Code Description Project File Line Suppression State
Error C2593 'operator =' is ambiguous MFCApplication1
错误原因:
2、tan() / tanf() / tanl() ----求正切值
3、CWnd::SetWindowPos(NULL, 200, 520, 290, 580, SWP_NOZORDER);
设置dlg窗口位置。
4、SetTimer()、OnTimer()、KillTimer()
SetTimer():创建或设置一个定时器,该函数创建的定时器与Timer控件(定时器控件)效果相同。
KillTimer():关闭定时器。
OnTimer():回调函数默认就是OnTimer函数。
函数原型:
UINT_PTR SetTimer(
HWND hWnd, // 窗口句柄
UINT_PTR nIDEvent, // 定时器ID,多个定时器时,可以通过该ID判断是哪个定时器
UINT uElapse, // 时间间隔,单位为毫秒
TIMERPROC lpTimerFunc // 回调函数
);
BOOL KillTimer( HWND hWnd, // 窗口句柄 UINT_PTR uIDEvent // ID );
https://www.cnblogs.com/lingc/p/3380919.html
void CTimerMFCDlg::OnBnClickedButton1()
{
// TODO: Add your control notification handler code here
SetTimer(1, 10000, NULL);
}
void CTimerMFCDlg::OnTimer(UINT_PTR nIDEvent)
{
// TODO: Add your message handler code here and/or call default
KillTimer(1);
MessageBox(L"haha");
CDialogEx::OnTimer(nIDEvent);
}
run:
10s后:
5、MessageBox()用法:
LPCTSTR lpctstr = L"killed";
MessageBox(lpctstr);
6、如何在MFC应用程序的主窗口中打开另一个窗口:
然后在主窗口里相应的事件里添加新窗口的头文件和类对象,例:
CNewCreateDlg dlg;
dlg.DoModal();
7、radio button
SetCheck():设置radio是否被选中,TRUE是已选中,FAlSE是未选中。
GetCheck():获取radio的状态,是否被选中。
GetDlgItem(IDC_RADIO1)->SetWindowText(L"radio name");设置radio的名字
Edit control:
SetWindowText(L"this is your words ");
8、画图
Invalidate(false)不擦除背景,直接画
Invalidate(true)擦除背景
CPaintDC dc(this);
dc.Ellipse(CRect(CPoint(x,y),CSize(100,100)));//画圆,原点是(x,y),半径是100
CBrush brush(RGB(255,255,0));//画笔颜色
dc.FillRect(CRect(CPoint(x,y),CSize(100,100)),&brush);//画有颜色的矩形
https://blog.csdn.net/baidu_37503452/article/details/73896339