Прикрутить полосы прокрутки
От: pivcorp Россия  
Дата: 17.07.09 10:19
Оценка:
Никогда не занимался окнами в Windows и только позавчера впервые увидел WTL.

Есть класс показывающий картинки:

class CImageViewDlg : public CDialogImpl<CImageViewDlg>, public CWinDataExchange<CImageViewDlg>
{
public:
  enum { IDD = IDD_IMAGE_VIEW };
//...
  CStatic         m_ctrlImageView;

  BEGIN_DDX_MAP(CImageViewDlg)
    DDX_CONTROL_HANDLE(IDC_IMAGE, m_ctrlImageView)
  END_DDX_MAP()
//...
};


И где то в нем вызвается

    m_ctrlImageView.SetBitmap(hBitmap);


Надо чтобы картинка при определенном была с полосами прокрутки.

Предполагаю, что для этого можно заменить CStatic на что то более продвинутое
делаю так :


typedef CWinTraits<WS_CHILD | WS_VISIBLE | WS_CLIPCHILDREN 
| WS_CLIPSIBLINGS  | WS_VSCROLL | WS_HSCROLL , 0> ScrollTraits;

class ScrollStaticWindowTest1: public CScrollWindowImpl < ScrollStaticWindowTest1, CStatic, ScrollTraits>
{
public:
    operator HWND() const throw()
    { 
        return m_hWnd; 
    }

    const ScrollStaticWindowTest1 & operator =(HWND hWnd)
    {
        m_hWnd = hWnd;
        return *this;
    }
};


и заменяю строку определения на

 ScrollStaticWindowTest1 m_ctrlImageView;


В результате не изменилось ничего (кроме того что WTL при закрытии окна ругается, что я не почистил m_hWnd)

А хотелось чтобы картинка оказалась с полосами прокрутки.

Времени у меня осталось мало поэтому очень прошу помочь.
Объясните, пожалуйста, подробно, "на пальцах", что я ещё должен сделать,
чтобы решить задачу двигаясь в этом направлении.
Либо каким более простым способом это можно сделать.
wtl cscrollwindowimpl полоса прокрутки
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.