class CGetIELinkDlg : public CResizingDialog{
...// Attribute
protected:
CGetList m_ctrGetList;
...}
In der Implementationsdatei des Dialogs ist die Methode OnCreate() zu erweitern, um die GetList Control zu erzeugen. Dieser Code wird hinter dem bereits eventuell vorhandenen Code der Methode angefügt.
int CGetIELinkDlg::OnCreate(
LPCREATESTRUCT lpCreateStruct) {
... // bereits vorhandener Code
Der Aufruf zum Erzeugen der GetList Control lautet:
m_ctrGetList.Create(LVS_REPORT | WS_VISIBLE | WS_CHILD,
CRect( 10, 10 , 460, 200),
this, IDC_GET_LIST);
Die Farben der GetList Control werden wie folgt eingestellt:
m_ctrGetList.SetTextColor (RGB(255,255,255));
m_ctrGetList.SetTextBkColor(RGB(69, 83,103));
m_ctrGetList.SetBkColor (RGB(69, 83,103));
Als Nächstes ist der Header der List Control zu initialisieren.
LV_COLUMN Lvc;
Lvc.mask = LVCF_FMT | LVCF_WIDTH | LVCF_TEXT | LVCF_SUBITEM;
Lvc.fmt = LVCFMT_LEFT;
Die erste Spalte erhält die Bezeichnung:
Lvc.pszText = (LPTSTR)(LPCSTR)"Internet Link";
Lvc.cx = 440;
Lvc.iSubItem = 0;
m_ctrGetList.InsertColumn(0, &Lvc);
Der erweiterte Control Stil wird wie folgt festgelegt:
m_ctrGetList.SetExtendedStyle(LVS_EX_ONECLICKACTIVATE |
LVS_EX_FULLROWSELECT |
LVS_EX_UNDERLINEHOT |
LVS_EX_INFOTIP |
LVS_EX_FLATSB |
LVS_EX_GRIDLINES |
LVS_EX_CHECKBOXES );
... // weitere Initialisierungen
}
Wird nun ein Link auf die List Control des Dialogs gezogen, zeigt das GetList Object automatisch den vollen qualifizierten Pfad der URL an, die anschließend verwendet werden kann, um Verbindungen zum Internet aufzunehmen.
Intern setzt die Klasse CGetList eine Instanz der Klasse COleListDropTarget ein, die sämtliche Arbeiten des OLE Drag&Drop Interfaces erledigt, die notwendig sind, um das gezogene Objekt zu übernehmen. Das Interface der Klasse lautet:
class COleListDropTarget : public COleDropTarget {
public:
void SetParent(CWnd* pParent);
COleListDropTarget(CWnd* pParent = NULL);
virtual ~COleListDropTarget();
DROPEFFECT OnDragEnter(CWnd* pWnd, COleDataObject* pDataObject,
DWORD dwKeyState, CPoint point );
DROPEFFECT OnDragOver(CWnd* pWnd, COleDataObject* pDataObject,
DWORD dwKeyState, CPoint point );
void OnDragLeave(CWnd* pWnd);
BOOL OnDrop(CWnd* pWnd, COleDataObject* pDataObject, DROPEFFECT
dropEffect, CPoint point );
// Attributes
protected:
CWnd* m_pParent;
};
Zu den Arbeitsschritten, die die Klasse COleListDropTarget zu leisten hat, kann bei Bedarf der Beitrag 5/2.6.3.14 konsultiert werden, in dem die analogen Schritte für einen Button erläutert wurden.
|