私はMFCスクロールビューの操作が初めてで、ScrollViewクラスの関数onPaintに大きな画像を表示しています。これは、コードに続く初期更新時関数です
void CCenterImageView::OnInitialUpdate()
{
CScrollView::OnInitialUpdate();
// TODO: Add your specialized code here and/or call the base class
CSize sizeTotal;
// TODO: calculate the total size of this view
sizeTotal.cx = m_matImage.cols;
sizeTotal.cy = m_matImage.rows;
SetScrollSizes(MM_TEXT, sizeTotal,sizeTotal);
}
void CCenterImageView::OnVScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CScrollView::OnVScroll(nSBCode, nPos, pScrollBar);
//Invalidate();
}
void CCenterImageView::OnHScroll(UINT nSBCode, UINT nPos, CScrollBar* pScrollBar)
{
// TODO: Add your message handler code here and/or call default
CScrollView::OnHScroll(nSBCode, nPos, pScrollBar);
UpdateData();
//Invalidate();
}
void CCenterImageView::OnPaint()
{
CPaintDC dc(this); // device context for painting
// TODO: Add your message handler code here
// Do not call CView::OnPaint() for painting messages
if(m_CVvImageObj.GetImage())
{
//this function blit the bitmap on the screen height and width are more than 1000 pixels
m_CVvImageObj.Show(dc.GetSafeHdc(),0,0,m_CVvImageObj.Width(),m_CVvImageObj.Height());
}
}
このhttp://www.functionx.com/visualc/views/scrollview.htmを使用すると、垂直スクロールと水平スクロールが表示されますが、それらを押してもビューの何も変わりません。ユーザーのクリックでスクロールを移動し、ビューを変更する方法を教えてください。