[MFC, C++] Własna kontrolka na CFormView
Ostatnio zmodyfikowano 2013-07-20 22:40
DejaVu Temat założony przez niniejszego użytkownika |
[MFC, C++] Własna kontrolka na CFormView » 2013-07-20 21:47:45 Generalnie rzecz biorąc szukałem sposobu, umożliwiającego umieszczenie kontrolki o rozbudowanej funkcjonalności w stosunku do domyślnej. Przykładowo: chciałbym napisać sobie implementację Virtual List Control ( http://msdn.microsoft.com/en-us/library/ye4z8x58(v=vs.80).aspx). Chcę jednocześnie, aby na dialogu w zasobach była naniesiona kontrolka CListControl, ale żeby posiadała funkcjonalność rozszerzonej kontrolki, tj. CWlasnaListControl. http://computer-programming-forum.com/82-mfc/7e2fd79faf243c0c.htmW linku, który podałem powyżej jest napisane, że trzeba skorzystać z DDX_Control. Rozwiązanie zapewne jest poprawne, bo już kiedyś miałem z tym styczność i tak się to robiło, a posta z informacjami zamieszczam ku pamięci :) |
|
DejaVu Temat założony przez niniejszego użytkownika |
» 2013-07-20 22:40:15 Dorzucam jeszcze fragmenty informacji poskładane w całość jak to powinno wyglądać: class CVirtualListCtrl : public CListCtrl { DECLARE_DYNCREATE( CVirtualListCtrl ) DECLARE_MESSAGE_MAP() virtual void PreSubclassWindow() { __super::PreSubclassWindow(); ModifyStyle( 0, LVS_OWNERDATA ); } };
IMPLEMENT_DYNCREATE( CVirtualListCtrl, CListCtrl )
BEGIN_MESSAGE_MAP( CVirtualListCtrl, CListCtrl ) END_MESSAGE_MAP()
class CJakisView : public CFormView { DECLARE_DYNCREATE( CJakisView ) DECLARE_MESSAGE_MAP() public : CJakisView() : CFormView( IDD_JAKIS_DLG ) { } virtual void DoDataExchange( CDataExchange * pDX ) { __super::DoDataExchange( pDX ); DDX_Control( pDX, IDC_LISTA_REKORDOW, m_ctrlListaRekordow ); } private: CVirtualListCtrl m_ctrlListaRekordow; };
IMPLEMENT_DYNCREATE( CJakisView, CFormView )
BEGIN_MESSAGE_MAP( CJakisView, CFormView ) END_MESSAGE_MAP()
Kilka dodatkowych informacji: http://www.codeproject.com/Articles/480/Create-your-own-controls-the-art-of-subclassing |
|
« 1 » |