<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Sendmessage und Konsorten]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab zwar schon beiträge hier im Forum durchsucht aber sorichtig hab ich das mit der SendMessage-Funktion noch net verstanden.</p>
<p>Mein Problem ist das ich in einer SDI Anwendung ein Objektgerüst in dem Doc-Objekt erstelle und es durch abfragen über Dialogfelder initialisiere.<br />
ob es Komplett aufgebaut wurde, kontolliert eine Funktion im Doc-Objekt.<br />
Diese Funktion sollte dann eine Message an das View-Objekt schicken welches dann über eine Funktion ein CtrlTab initialisieren soll jenes dann auf mehren Seiten die gesammelten Daten des Objektgerüstes in einem ListCtrl wieder gibt.</p>
<p>Laut Mehreren Beiträgen:</p>
<p>hab ich dann in meine Quelltexte</p>
<pre><code>//Doc Header
#define WM_AUSGABE      101

//Doc Cpp
	{
		m_pcks.m_ckmKnMenge.m_nMoeglicheKnotenmenge=m_pcks.m_ckmKnMenge.m_nTatsaechlicheKnotenmenge;
		m_pcks.m_ckmKnMenge.m_fnTatsKnFeldAllok();
		m_pcks.m_ckmKnMenge.m_fnKnFeldCopy();
		m_pcks.m_ckmKnMenge.m_fnMoeKnFeldLoeschen();
  :arrow: 	PostMessage(ID_AUSGABE,0,0);
	}
}

//View Header
	afx_msg void OnAusgabe();
	virtual BOOL PreTranslateMessage(MSG* pMsg);

//View Cpp
IMPLEMENT_DYNCREATE(CKabelstPrfView, CRecordView)

BEGIN_MESSAGE_MAP(CKabelstPrfView, CRecordView)
	// Standarddruckbefehle
	ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
	ON_COMMAND(ID_AUSGABE, OnAusgabe)
 :arrow: 	ON_MESSAGE(WM_AUSGABE,OnAusgabe)
END_MESSAGE_MAP()
//und
BOOL CKabelstPrfView::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg -&gt;message == WM_AUSGABE) 
	{ 
		OnAusgabe();
	} 
	return CRecordView::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Eingefügt aber ich bekomme immernoch fehler.</p>
<p>Fehler:<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(27) : error C2440: 'static_cast': 'void (__thiscall CKabelstPrfView::* )(void)' kann nicht in 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein<br />
KabelstPrüfDoc.cpp</p>
<p>c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfdoc.cpp(144) : error C2664: 'PostMessageA': Konvertierung des Parameters 1 von 'CKabelstPrfDoc *const ' in 'HWND' nicht möglich<br />
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.</p>
<p>Was mach ich noch Falsch?</p>
<p>Mit freundlichen Grüssen!</p>
<p>Twist</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/72431/sendmessage-und-konsorten</link><generator>RSS for Node</generator><lastBuildDate>Mon, 27 Apr 2026 22:37:38 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/72431.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Apr 2004 15:09:20 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to Sendmessage und Konsorten on Wed, 28 Apr 2004 15:09:20 GMT]]></title><description><![CDATA[<p>Hallo,</p>
<p>ich hab zwar schon beiträge hier im Forum durchsucht aber sorichtig hab ich das mit der SendMessage-Funktion noch net verstanden.</p>
<p>Mein Problem ist das ich in einer SDI Anwendung ein Objektgerüst in dem Doc-Objekt erstelle und es durch abfragen über Dialogfelder initialisiere.<br />
ob es Komplett aufgebaut wurde, kontolliert eine Funktion im Doc-Objekt.<br />
Diese Funktion sollte dann eine Message an das View-Objekt schicken welches dann über eine Funktion ein CtrlTab initialisieren soll jenes dann auf mehren Seiten die gesammelten Daten des Objektgerüstes in einem ListCtrl wieder gibt.</p>
<p>Laut Mehreren Beiträgen:</p>
<p>hab ich dann in meine Quelltexte</p>
<pre><code>//Doc Header
#define WM_AUSGABE      101

//Doc Cpp
	{
		m_pcks.m_ckmKnMenge.m_nMoeglicheKnotenmenge=m_pcks.m_ckmKnMenge.m_nTatsaechlicheKnotenmenge;
		m_pcks.m_ckmKnMenge.m_fnTatsKnFeldAllok();
		m_pcks.m_ckmKnMenge.m_fnKnFeldCopy();
		m_pcks.m_ckmKnMenge.m_fnMoeKnFeldLoeschen();
  :arrow: 	PostMessage(ID_AUSGABE,0,0);
	}
}

//View Header
	afx_msg void OnAusgabe();
	virtual BOOL PreTranslateMessage(MSG* pMsg);

//View Cpp
IMPLEMENT_DYNCREATE(CKabelstPrfView, CRecordView)

BEGIN_MESSAGE_MAP(CKabelstPrfView, CRecordView)
	// Standarddruckbefehle
	ON_COMMAND(ID_FILE_PRINT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_DIRECT, CRecordView::OnFilePrint)
	ON_COMMAND(ID_FILE_PRINT_PREVIEW, CRecordView::OnFilePrintPreview)
	ON_COMMAND(ID_AUSGABE, OnAusgabe)
 :arrow: 	ON_MESSAGE(WM_AUSGABE,OnAusgabe)
END_MESSAGE_MAP()
//und
BOOL CKabelstPrfView::PreTranslateMessage(MSG* pMsg)
{
	if(pMsg -&gt;message == WM_AUSGABE) 
	{ 
		OnAusgabe();
	} 
	return CRecordView::PreTranslateMessage(pMsg);
}
</code></pre>
<p>Eingefügt aber ich bekomme immernoch fehler.</p>
<p>Fehler:<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(27) : error C2440: 'static_cast': 'void (__thiscall CKabelstPrfView::* )(void)' kann nicht in 'LRESULT (__thiscall CWnd::* )(WPARAM,LPARAM)' konvertiert werden<br />
Keine Funktion mit diesem Namen im Gültigkeitsbereich stimmt mit dem Zieltyp überein<br />
KabelstPrüfDoc.cpp</p>
<p>c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfdoc.cpp(144) : error C2664: 'PostMessageA': Konvertierung des Parameters 1 von 'CKabelstPrfDoc *const ' in 'HWND' nicht möglich<br />
Die Typen, auf die verwiesen wird, sind nicht verknüpft; die Konvertierung erfordert einen reinterpret_cast-Operator oder eine Typumwandlung im C- oder Funktionsformat.</p>
<p>Was mach ich noch Falsch?</p>
<p>Mit freundlichen Grüssen!</p>
<p>Twist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/510529</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/510529</guid><dc:creator><![CDATA[Twist]]></dc:creator><pubDate>Wed, 28 Apr 2004 15:09:20 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage und Konsorten on Wed, 28 Apr 2004 15:32:54 GMT]]></title><description><![CDATA[<p>Hallo Twist,<br />
ich antworte dir mal trotz deiner doofen Signatur...</p>
<p>Erstmal solltest du keine Message mit 101 definieren, das ist nämlich im Bereich, den Windows sich reserviert. Die vom Benutzer definerten Messages müssen mindestens den Wert WM_USER haben. Also z.B.</p>
<pre><code class="language-cpp">#define WM_AUSGABE (WM_USER + 101)
</code></pre>
<p>Dann musst du sicherstellen, dass du die Message auch sicher an den View schickst.<br />
Also:</p>
<pre><code class="language-cpp">POSITION viewpos = GetFirstViewPosition();
CView *view = GetNextView(viewpos);
if (view != NULL)
    view-&gt;PostMessage(WM_AUSGABE)
</code></pre>
<p>Der View muss dann einen Messagehandler haben, der so aussieht</p>
<pre><code class="language-cpp">afx_msg LPARAM OnAusgabe(WPARAM wpar, LPARAM lpar);
</code></pre>
<p>Dein Eintrag in der MessageMap ist ok:</p>
<pre><code class="language-cpp">ON_MESSAGE(WM_AUSGABE, OnAusgabe)
</code></pre>
<p>Die Abfrage in PretranslateMessage brauchst du nicht. Die Funktion OnAusgabe wird automatisch über die MessageMap aufgerufen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/510545</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/510545</guid><dc:creator><![CDATA[Uwe Philipps]]></dc:creator><pubDate>Wed, 28 Apr 2004 15:32:54 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage und Konsorten on Wed, 28 Apr 2004 16:45:47 GMT]]></title><description><![CDATA[<p>Erstmal Danke für deine Antwort trotz meiner Signatur!</p>
<p>Ich hab es jetzt umgeschrieben.<br />
doch jetzt bekomme ich neue Fehler!<br />
die Funktion OnAusgabe hat jetzt keinen Zugriff mehr auf die View elemente.<br />
Warum auch immer.</p>
<p>meine Eintragungen:</p>
<pre><code>//View Cpp
bei den Meldungshandler
void OnAusgabe()
{
	CKabelstPrfDoc* pmyDoc=GetDocument();
	m_AusgabeTab.m_fnInit2(pmyDoc);
	Invalidate();
}

// CKabelstPrfView Meldungshandler
afx_msg LPARAM OnAusgabe(WPARAM wpar, LPARAM lpar);

//View Header

protected:
	void OnAusgabe();
	afx_msg LPARAM OnAusgabe(WPARAM wpar, LPARAM lpar);
};
</code></pre>
<p>Fehler:<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(115) : error C3861: 'GetDocument': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(116) : error C2065: 'm_AusgabeTab': nichtdeklarierter Bezeichner<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(116) : error C2228: Der linke Teil von '.m_fnInit2' muss eine Klasse/Struktur/Union sein<br />
Typ ist ''unknown-type''<br />
c:\dokumente und einstellungen\twist\eigene dateien\visual studio projects\kabelstprüf\kabelstprüf\kabelstprüfview.cpp(117) : error C3861: 'Invalidate': Bezeichner wurde auch mit einer argumentbezogenen Suche nicht gefunden</p>
<p>Ist leider mein erstes Windowsprogramm welches mit der mfc arbeitet!</p>
<p>Mit freundlichen Grüssen!</p>
<p>Twist</p>
]]></description><link>https://www.c-plusplus.net/forum/post/510601</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/510601</guid><dc:creator><![CDATA[Twist]]></dc:creator><pubDate>Wed, 28 Apr 2004 16:45:47 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage und Konsorten on Wed, 28 Apr 2004 18:18:45 GMT]]></title><description><![CDATA[<p>Bitte!</p>
]]></description><link>https://www.c-plusplus.net/forum/post/510677</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/510677</guid><dc:creator><![CDATA[Twist]]></dc:creator><pubDate>Wed, 28 Apr 2004 18:18:45 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage und Konsorten on Thu, 29 Apr 2004 06:18:50 GMT]]></title><description><![CDATA[<p>Deine Funktion OnAusgabe ist ja gar nicht Member von CKabelstPrfView.<br />
Es muss so aussehen:</p>
<p>[cpp]//View Cpp<br />
bei den Meldungshandler<br />
void **CKabelstPrfView::*<em>OnAusgabe(<strong>WPARAM wpar, LPARAM lpar</strong>)<br />
{<br />
CKabelstPrfDoc</em> pmyDoc=GetDocument();<br />
m_AusgabeTab.m_fnInit2(pmyDoc);<br />
Invalidate();<br />
}</p>
<p>// CKabelstPrfView Meldungshandler<br />
afx_msg LPARAM OnAusgabe(WPARAM wpar, LPARAM lpar);</p>
<p>//View Header</p>
<p>protected:<br />
<strong>//void OnAusgabe(); Löschen!</strong><br />
afx_msg LPARAM OnAusgabe(WPARAM wpar, LPARAM lpar);<br />
};[/cpp]</p>
]]></description><link>https://www.c-plusplus.net/forum/post/510809</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/510809</guid><dc:creator><![CDATA[Uwe Philipps]]></dc:creator><pubDate>Thu, 29 Apr 2004 06:18:50 GMT</pubDate></item><item><title><![CDATA[Reply to Sendmessage und Konsorten on Thu, 29 Apr 2004 11:53:27 GMT]]></title><description><![CDATA[<p>Danke,<br />
hab ich übersehen.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/511053</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/511053</guid><dc:creator><![CDATA[Twist]]></dc:creator><pubDate>Thu, 29 Apr 2004 11:53:27 GMT</pubDate></item></channel></rss>