<?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[WindowProc in C++ verpacken]]></title><description><![CDATA[<p>Liebe Leute!</p>
<p>Habe folgendes Problem:</p>
<p>Ich möchte gerne C Code nach C++ portieren um das ganze ein wenig übersichtlicher zu gestalten. Problematisch ist hier für mich der Aufruf der API Funktion RegisterClassEx. In deren Struktur übergibt man ja einen Pointer auf die dem Fenster zugehörige Windowsprozedur...</p>
<p>In C ganz easy... in C++ verzweifle ich gerade ... ich habe es mit this-&gt;Methodenname versucht und allen möglichen Dinge komme aber leider auf keinen grünen Zweig.</p>
<p>Ich darf Euch hier die entsprechenden Codesnips posten vieleicht hat jemand ja bereits Erfahren damit gesammelt... vielen Lieben dank..</p>
<p>Gerold</p>
<p>[cpp]<br />
// Constructor<br />
CSignalWnd::CSignalWnd(SM_CFGROOT *lpCfgRoot) {<br />
WNDCLASSEX wcex;</p>
<p>this-&gt;lpCfgRoot = lpCfgRoot; // übernimmm Configuration vom Aufrufer</p>
<p>// load resources<br />
LoadString(lpCfgRoot-&gt;hInst, IDC_SIGNAL, lpCfgRoot-&gt;smWindows.szWindowClassSignal, MAX_LOADSTRING);<br />
LoadString(lpCfgRoot-&gt;hInst, IDS_SIGNALWND_TITLE, lpCfgRoot-&gt;smWindows.szWindowSignalTitle, MAX_LOADSTRING);</p>
<p>lpCfgRoot-&gt;smMenus.hMenuSignal = LoadMenu(lpCfgRoot-&gt;hInst, TEXT (&quot;MenuSignal&quot;));<br />
lpCfgRoot-&gt;smMenus.hMenuWindowsWindowSignal = GetSubMenu(lpCfgRoot-&gt;smMenus.hMenuSignal, WINDOWS_MENU_POS);</p>
<p>// register class<br />
wcex.cbSize = sizeof(WNDCLASSEX);<br />
wcex.style = CS_HREDRAW | CS_VREDRAW ;<br />
wcex.cbClsExtra = 0;<br />
wcex.cbWndExtra = 0;<br />
wcex.hInstance = lpCfgRoot-&gt;hInst;<br />
wcex.hIcon = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SAMMLER);<br />
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);<br />
wcex.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);<br />
wcex.lpszMenuName = NULL;<br />
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);<br />
<strong>wcex.lpfnWndProc = (WNDPROC)(this-&gt;SigWndProc);</strong><br />
wcex.lpszClassName = lpCfgRoot-&gt;smWindows.szWindowClassSignal;<br />
(void)RegisterClassEx(&amp;wcex);<br />
}</p>
<p>CSignalWnd::~CSignalWnd() {<br />
}</p>
<p>/// Zentrale Methode zur Windows-Nachrichtenverwaltung<br />
<strong>LRESULT CALLBACK CSignalWnd::SigWndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam) {</strong></p>
<p>// je nach message rufe die entsprechenden Methoden auf<br />
switch (message)<br />
{<br />
case WM_CREATE:<br />
return this-&gt;WM_Create(hWnd, message, wParam, lParam);</p>
<p>case WM_SIZE:<br />
return this-&gt;WM_Size(hWnd, message, wParam, lParam);</p>
<p>case WM_MDIACTIVATE:<br />
return this-&gt;WM_MDIActivate(hWnd, message, wParam, lParam);</p>
<p>case WM_CLOSE:<br />
return this-&gt;WM_Close(hWnd, message, wParam, lParam);</p>
<p>case WM_COMMAND:<br />
if (LOWORD(wParam)==ID_SIG_EDIT)<br />
if (HIWORD(wParam)==EN_UPDATE) {<br />
(void)SetWindowText(lpCfgRoot-&gt;smWindows.hwndSIGEditControl,(char *)&amp;szBuffer);<br />
return 0;<br />
}<br />
break;<br />
} // end switch</p>
<p>return DefMDIChildProc (hWnd, message, wParam, lParam) ;<br />
} /// end CSignalWnd::WndProc[/cpp]</p>
<p>edit: sfds</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/81184/windowproc-in-c-verpacken</link><generator>RSS for Node</generator><lastBuildDate>Mon, 13 Apr 2026 14:23:21 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/81184.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 28 Jul 2004 20:10:45 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to WindowProc in C++ verpacken on Wed, 28 Jul 2004 20:16:57 GMT]]></title><description><![CDATA[<p>Liebe Leute!</p>
<p>Habe folgendes Problem:</p>
<p>Ich möchte gerne C Code nach C++ portieren um das ganze ein wenig übersichtlicher zu gestalten. Problematisch ist hier für mich der Aufruf der API Funktion RegisterClassEx. In deren Struktur übergibt man ja einen Pointer auf die dem Fenster zugehörige Windowsprozedur...</p>
<p>In C ganz easy... in C++ verzweifle ich gerade ... ich habe es mit this-&gt;Methodenname versucht und allen möglichen Dinge komme aber leider auf keinen grünen Zweig.</p>
<p>Ich darf Euch hier die entsprechenden Codesnips posten vieleicht hat jemand ja bereits Erfahren damit gesammelt... vielen Lieben dank..</p>
<p>Gerold</p>
<p>[cpp]<br />
// Constructor<br />
CSignalWnd::CSignalWnd(SM_CFGROOT *lpCfgRoot) {<br />
WNDCLASSEX wcex;</p>
<p>this-&gt;lpCfgRoot = lpCfgRoot; // übernimmm Configuration vom Aufrufer</p>
<p>// load resources<br />
LoadString(lpCfgRoot-&gt;hInst, IDC_SIGNAL, lpCfgRoot-&gt;smWindows.szWindowClassSignal, MAX_LOADSTRING);<br />
LoadString(lpCfgRoot-&gt;hInst, IDS_SIGNALWND_TITLE, lpCfgRoot-&gt;smWindows.szWindowSignalTitle, MAX_LOADSTRING);</p>
<p>lpCfgRoot-&gt;smMenus.hMenuSignal = LoadMenu(lpCfgRoot-&gt;hInst, TEXT (&quot;MenuSignal&quot;));<br />
lpCfgRoot-&gt;smMenus.hMenuWindowsWindowSignal = GetSubMenu(lpCfgRoot-&gt;smMenus.hMenuSignal, WINDOWS_MENU_POS);</p>
<p>// register class<br />
wcex.cbSize = sizeof(WNDCLASSEX);<br />
wcex.style = CS_HREDRAW | CS_VREDRAW ;<br />
wcex.cbClsExtra = 0;<br />
wcex.cbWndExtra = 0;<br />
wcex.hInstance = lpCfgRoot-&gt;hInst;<br />
wcex.hIcon = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SAMMLER);<br />
wcex.hCursor = LoadCursor(NULL, IDC_ARROW);<br />
wcex.hbrBackground = (HBRUSH)(COLOR_BACKGROUND);<br />
wcex.lpszMenuName = NULL;<br />
wcex.hIconSm = LoadIcon(wcex.hInstance, (LPCTSTR)IDI_SMALL);<br />
<strong>wcex.lpfnWndProc = (WNDPROC)(this-&gt;SigWndProc);</strong><br />
wcex.lpszClassName = lpCfgRoot-&gt;smWindows.szWindowClassSignal;<br />
(void)RegisterClassEx(&amp;wcex);<br />
}</p>
<p>CSignalWnd::~CSignalWnd() {<br />
}</p>
<p>/// Zentrale Methode zur Windows-Nachrichtenverwaltung<br />
<strong>LRESULT CALLBACK CSignalWnd::SigWndProc(HWND hWnd,UINT message, WPARAM wParam, LPARAM lParam) {</strong></p>
<p>// je nach message rufe die entsprechenden Methoden auf<br />
switch (message)<br />
{<br />
case WM_CREATE:<br />
return this-&gt;WM_Create(hWnd, message, wParam, lParam);</p>
<p>case WM_SIZE:<br />
return this-&gt;WM_Size(hWnd, message, wParam, lParam);</p>
<p>case WM_MDIACTIVATE:<br />
return this-&gt;WM_MDIActivate(hWnd, message, wParam, lParam);</p>
<p>case WM_CLOSE:<br />
return this-&gt;WM_Close(hWnd, message, wParam, lParam);</p>
<p>case WM_COMMAND:<br />
if (LOWORD(wParam)==ID_SIG_EDIT)<br />
if (HIWORD(wParam)==EN_UPDATE) {<br />
(void)SetWindowText(lpCfgRoot-&gt;smWindows.hwndSIGEditControl,(char *)&amp;szBuffer);<br />
return 0;<br />
}<br />
break;<br />
} // end switch</p>
<p>return DefMDIChildProc (hWnd, message, wParam, lParam) ;<br />
} /// end CSignalWnd::WndProc[/cpp]</p>
<p>edit: sfds</p>
]]></description><link>https://www.c-plusplus.net/forum/post/570561</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/570561</guid><dc:creator><![CDATA[DerAku]]></dc:creator><pubDate>Wed, 28 Jul 2004 20:16:57 GMT</pubDate></item><item><title><![CDATA[Reply to WindowProc in C++ verpacken on Wed, 28 Jul 2004 20:15:34 GMT]]></title><description><![CDATA[<p>Da du noch neu bist, weißt du vielleicht noch nicht, dass es in Foren sowas wie FAQs gibt...also bin ich nochmal gnädig und antworte dir sogar:<br />
Mach die WndProc entweder static oder lese das hier:<br />
<a href="http://www.c-plusplus.net/forum/viewtopic.php?t=39356" rel="nofollow">Klick zum Wissen</a></p>
]]></description><link>https://www.c-plusplus.net/forum/post/570566</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/570566</guid><dc:creator><![CDATA[Surkevin]]></dc:creator><pubDate>Wed, 28 Jul 2004 20:15:34 GMT</pubDate></item><item><title><![CDATA[Reply to WindowProc in C++ verpacken on Thu, 29 Jul 2004 11:31:38 GMT]]></title><description><![CDATA[<p>gleich zwei Sachen gelernt - Syntaxhighlighting UND C++ &amp; WndProc</p>
<p>sehr fein <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f44d.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--thumbs_up"
      title=":+1:"
      alt="👍"
    /> hat mir sehr geholfen vielen dank</p>
]]></description><link>https://www.c-plusplus.net/forum/post/570899</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/570899</guid><dc:creator><![CDATA[DerAku]]></dc:creator><pubDate>Thu, 29 Jul 2004 11:31:38 GMT</pubDate></item></channel></rss>