summary3 slider control使用、slider control使用、MessageBox()用法、MFC应用程序的主窗口中打开另一个窗口、radio button......

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窗口位置。

扫描二维码关注公众号,回复: 5274064 查看本文章

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

猜你喜欢

转载自blog.csdn.net/weixin_40236507/article/details/86699285
今日推荐