29.11.2012 Aufrufe

combit List & Label - Programmierer-Referenz - combit GmbH

combit List & Label - Programmierer-Referenz - combit GmbH

combit List & Label - Programmierer-Referenz - combit GmbH

MEHR ANZEIGEN
WENIGER ANZEIGEN

Sie wollen auch ein ePaper? Erhöhen Sie die Reichweite Ihrer Titel.

YUMPU macht aus Druck-PDFs automatisch weboptimierte ePaper, die Google liebt.

lUserParam ist der über<br />

LlSetOption(hJob, LL_OPTION_CALLBACKPARAMETER, );<br />

Datenübergabe per Nachricht<br />

übergebene Wert.<br />

In objektorientierten Sprachen kann so ein Zeiger ("this", "self") übergeben werden.<br />

11.5. Datenübergabe per Nachricht<br />

Zu einer Nachricht gehören drei Parameter: nMsg, wParam und lParam in der folgenden<br />

Definition Ihres Nachrichten-Callbacks (nennt sich hier Fensterroutine, ist aber nichts<br />

anderes als ein Callback!)<br />

LRESULT WINAPI MyWndProc(HWND hWnd, UINT nMsg, WPARAM wParam, LPARAM lParam);<br />

Der Nachrichtenwert, den <strong>List</strong> & <strong>Label</strong> benutzt, kann über LlGetNotificationMessage()<br />

abgefragt werden. Alternativ könnte man über LlSetNotificationMessage() einen anderen<br />

aussuchen.<br />

wParam ist hier unsere Aufgaben-Konstante und lParam zeigt auf eine Struktur des Typ<br />

scLlCallback:<br />

struct scLlCallback<br />

{<br />

int _nSize;<br />

LPARAM _lParam;<br />

LRESULT _lResult;<br />

LPARAM _lUserParameter;<br />

}<br />

In dieser Struktur stecken nun die erforderlichen _lParam (als Parameterwert) und<br />

_lResult (als Rückgabewert).<br />

nLLMessage = LlGetNotificationMessage(hJob);<br />

//....<br />

// ...in the window procedure...<br />

if (wMsg == nLLMessage)<br />

{<br />

PSCLLCALLBACK pSC;<br />

PSCLLTABLEFIELD pSCF;<br />

pSC = (PSCCALLBACK)lParam;<br />

switch (wParam)<br />

{<br />

case LL_CMND_TABLEFIELD:<br />

pSCF = (PSCLLTABLEFIELD)pSC->_lParam;<br />

// do something;<br />

pSC._lResult = 0;<br />

break;<br />

}<br />

}<br />

_lUserParam ist der über<br />

LlSetOption(hJob, LL_OPTION_CALLBACKPARAMETER, );<br />

135

Hurra! Ihre Datei wurde hochgeladen und ist bereit für die Veröffentlichung.

Erfolgreich gespeichert!

Leider ist etwas schief gelaufen!