Notitie
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen u aan te melden of de directory te wijzigen.
Voor toegang tot deze pagina is autorisatie vereist. U kunt proberen de mappen te wijzigen.
CGuiPaper houdt ook een m_bInking vlag. InkStart- stelt deze in op TRUE- om aan te geven dat een tekenreeks wordt verwerkt. De Methode InkDraw gebruikt deze vlag bijvoorbeeld om te bepalen of deze inktgegevens moet schilderen en opslaan.
Hier volgt de Methode InkDraw van GUIPAPER. CPP.
HRESULT CGuiPaper::InkDraw(
SHORT nX,
SHORT nY)
{
if (m_bInking)
{
// Start this ink line at previous old position.
MoveToEx(m_hDC, m_OldPos.x, m_OldPos.y, NULL);
// Assign new old position and draw the new line.
LineTo(m_hDC, m_OldPos.x = nX, m_OldPos.y = nY);
// Ask the Paper object to save this data.
if (m_bInkSaving)
m_pIPaper->InkDraw(m_nLockKey, nX, nY);
}
return NOERROR;
}
Deze methode doet niets als m_bInking is ONWAAR. Dit is de voorwaarde wanneer de gebruiker de muis over het clientvenster beweegt zonder op de linkermuisknop te drukken.
InkDraw heeft duidelijk een dubbele verantwoordelijkheid. De Win32 MoveToEx- en LineTo-aanroepen worden gedaan om lijnafbeeldingen op het GUI-scherm te tekenen (met behulp van de apparaatcontextgreep die in m_hDC wordt bewaard). De inktgegevens worden ook doorgegeven aan het COPaper-object voor opname met behulp van de methode InkDraw van de IPaper interface. Wanneer m_bInkSaving is FALSE, wordt inkDraw de lijnafbeelding weergegeven, maar worden de gegevens niet opgeslagen in COPaper. Deze voorwaarde wordt gebruikt tijdens het opnieuw schilderen.