MFC中怎么用WM_Paint() 消息对pciture 控件画图
MFC中如何用WM_Paint() 消息对pciture 控件画图
MFC中如何用WM_Paint 消息对pciture 控件画图
请问是不是重写dialog::OnPaint() 函数?但是这个函数好像是针对dialog的,我不想重绘其他的东西,就重绘画图控件就行了,该如何做呢?
------解决方案--------------------
pciture 派生,重写OnPaint
------解决方案--------------------
给picture关联一个变量,需要重绘的时候用m_Picture.Invalidate();
------解决方案--------------------
在对话框的OnPaint函数最后添加如下代码,注意将picture控件的type选择Frame
画图原来就是获取picture的DC再在DC上画图拜
CStatic* pStt = ( CStatic* )GetDlgItem( IDC_STT_PIC );
CDC* pDC = pStt-> GetDC( );
CRect rect;
pStt-> GetClientRect( rect );
pDC-> Ellipse( rect );
如果你想只重画picture控件可以给你的picture控件派生一个类如CMyPIC继承之CStatic,
然后给该类添加WM_PAINT消息处理函数即可。并且将你的picture控件的类型改为
CMyPIC即可
------解决方案--------------------
HBITMAP bm;
bm = ::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE( IDB_BITMAP2)) ;
((CButton *)GetDlgItem(IDC_BUTTON1))-> SetBitmap(bm);
MFC中如何用WM_Paint 消息对pciture 控件画图
请问是不是重写dialog::OnPaint() 函数?但是这个函数好像是针对dialog的,我不想重绘其他的东西,就重绘画图控件就行了,该如何做呢?
------解决方案--------------------
pciture 派生,重写OnPaint
------解决方案--------------------
给picture关联一个变量,需要重绘的时候用m_Picture.Invalidate();
------解决方案--------------------
在对话框的OnPaint函数最后添加如下代码,注意将picture控件的type选择Frame
画图原来就是获取picture的DC再在DC上画图拜
CStatic* pStt = ( CStatic* )GetDlgItem( IDC_STT_PIC );
CDC* pDC = pStt-> GetDC( );
CRect rect;
pStt-> GetClientRect( rect );
pDC-> Ellipse( rect );
如果你想只重画picture控件可以给你的picture控件派生一个类如CMyPIC继承之CStatic,
然后给该类添加WM_PAINT消息处理函数即可。并且将你的picture控件的类型改为
CMyPIC即可
------解决方案--------------------
HBITMAP bm;
bm = ::LoadBitmap(::AfxGetInstanceHandle(),MAKEINTRESOURCE( IDB_BITMAP2)) ;
((CButton *)GetDlgItem(IDC_BUTTON1))-> SetBitmap(bm);