Hinweis
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, sich anzumelden oder das Verzeichnis zu wechseln.
Für den Zugriff auf diese Seite ist eine Autorisierung erforderlich. Sie können versuchen, das Verzeichnis zu wechseln.
CGuiPaper behält auch eine m_bInking Kennzeichnung bei. InkStart- legt sie auf TRUE- fest, um zu signalisieren, dass eine Zeichnungssequenz verarbeitet wird. Die InkDraw-Methode verwendet z. B. dieses Flag, um zu bestimmen, ob sie Freihanddaten zeichnen und speichern soll.
Nachfolgend sehen Sie die InkDraw-Methode von 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;
}
Diese Methode führt nichts aus, wenn m_bInking FALSE-ist. Dies ist die Bedingung, wenn der Benutzer einfach die Maus über das Clientfenster bewegt, ohne die linke Maustaste zu drücken.
InkDraw hat eine doppelte Verantwortung. Die Win32 MoveToEx- und LineTo-Aufrufe werden ausgeführt, um Linienbilder auf dem GUI-Bildschirm zu zeichnen (mithilfe des in m_hDC gespeicherten Gerätekontextziehpunkts). Die Freihanddaten werden auch mithilfe der InkDraw-Methode des IPaper Schnittstelle an das COPaper-Objekt übergeben. Wenn m_bInkSaving FALSEist, zeichnet InkDraw das Linienbild, speichert die Daten jedoch nicht in COPaper. Diese Bedingung wird während der Aktualisierung verwendet.