<?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 problem]]></title><description><![CDATA[<p>hi,</p>
<p>ich hab ein problem beim senden einer nachricht.</p>
<p>folgendes problem:<br />
in meiner anwendung gibt es eine eingabezeile in der suchwörter eingegeben werden können, die suche soll dann entsprechend durch drücken der eingabetaste gestartet werden, oder über klicken des &quot;Go&quot; Buttons.</p>
<p>Ich hab deshalb die Eingabzeile gesubt-classed um das drücken der Eingabetaste abzufangen und um dann ein SendMessage an die WM_COMMAND vom Hauptfenster zu schicken das nun die Case-Anweisung des &quot;Go-Buttons&quot; ausgeführt werden soll.</p>
<p>Die Nachricht wird auch verschickt(return code 0), allerdings passiert nix und ich weis nicht sor echt woran es liegt. Hier mal die entsprechenden codeschnipsel:</p>
<pre><code class="language-cpp">#define ID_GOBUTTON    WM_USER+3  /* ID des Go-Button */

-----------------------------------

/* Erzeugung und Sub-Classing der Zeile für die Suchbegriffe  */

		hSearchLine = CreateWindow(L&quot;edit&quot;, L&quot;&quot;, WS_VISIBLE | WS_CHILD | ES_LEFT | WS_TABSTOP ,
									0, 0, 0, 0, hWnd, HMENU(ID_SEARCHLINE), ((LPCREATESTRUCT)lParam)-&gt;hInstance, NULL);

		PrevWndProcSearchLine = SetWindowLongPtr(hSearchLine, GWLP_WNDPROC, (LONG_PTR) SearchLineProc);

-------------------------------------

/* Die Callbackroutine für die Suchbegriffzeile */

LRESULT CALLBACK SearchLineProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_KEYDOWN:
		switch(wParam)
		{
		case 0x0D: /* Carrige Return (Entertaste) abfragen */
			int a= SendMessage(hWnd, WM_COMMAND, NULL, ID_GOBUTTON); /* Bei Eingabetaste identisch wie mit Buttonklick verhalten */
			break;  
		}
	}

return CallWindowProc ((WNDPROC) PrevWndProcSearchLine, hWnd, message, wParam, lParam);
}

-------------------------------------------------------------

/* Hauptroutine wo eigentlich der Sendmessage ankommen und verarbeitet werden sollte */

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc, hdcTmp;
	static HWND	hListView, hSearchLine, hGoButton;
	static int iWindowWidth, iWindowHeight;

	switch (message)
	{
        /* .... */
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Menüauswahl bearbeiten:
		switch (wmId)
		{
		case IDM_\1:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		case ID_GOBUTTON:
			{
MessageBox(hWnd, L&quot;pog&quot;,L&quot;pog&quot;, MB_OK);
				break;
			}
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
       /* .... */
</code></pre>
<p>Die Nachricht kommt, why ever, nicht an. Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/topic/192861/sendmessage-problem</link><generator>RSS for Node</generator><lastBuildDate>Tue, 30 Jun 2026 21:36:34 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/192861.rss" rel="self" type="application/rss+xml"/><pubDate>Wed, 19 Sep 2007 12:47:04 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to SendMessage problem on Wed, 19 Sep 2007 12:47:04 GMT]]></title><description><![CDATA[<p>hi,</p>
<p>ich hab ein problem beim senden einer nachricht.</p>
<p>folgendes problem:<br />
in meiner anwendung gibt es eine eingabezeile in der suchwörter eingegeben werden können, die suche soll dann entsprechend durch drücken der eingabetaste gestartet werden, oder über klicken des &quot;Go&quot; Buttons.</p>
<p>Ich hab deshalb die Eingabzeile gesubt-classed um das drücken der Eingabetaste abzufangen und um dann ein SendMessage an die WM_COMMAND vom Hauptfenster zu schicken das nun die Case-Anweisung des &quot;Go-Buttons&quot; ausgeführt werden soll.</p>
<p>Die Nachricht wird auch verschickt(return code 0), allerdings passiert nix und ich weis nicht sor echt woran es liegt. Hier mal die entsprechenden codeschnipsel:</p>
<pre><code class="language-cpp">#define ID_GOBUTTON    WM_USER+3  /* ID des Go-Button */

-----------------------------------

/* Erzeugung und Sub-Classing der Zeile für die Suchbegriffe  */

		hSearchLine = CreateWindow(L&quot;edit&quot;, L&quot;&quot;, WS_VISIBLE | WS_CHILD | ES_LEFT | WS_TABSTOP ,
									0, 0, 0, 0, hWnd, HMENU(ID_SEARCHLINE), ((LPCREATESTRUCT)lParam)-&gt;hInstance, NULL);

		PrevWndProcSearchLine = SetWindowLongPtr(hSearchLine, GWLP_WNDPROC, (LONG_PTR) SearchLineProc);

-------------------------------------

/* Die Callbackroutine für die Suchbegriffzeile */

LRESULT CALLBACK SearchLineProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	switch (message)
	{
	case WM_KEYDOWN:
		switch(wParam)
		{
		case 0x0D: /* Carrige Return (Entertaste) abfragen */
			int a= SendMessage(hWnd, WM_COMMAND, NULL, ID_GOBUTTON); /* Bei Eingabetaste identisch wie mit Buttonklick verhalten */
			break;  
		}
	}

return CallWindowProc ((WNDPROC) PrevWndProcSearchLine, hWnd, message, wParam, lParam);
}

-------------------------------------------------------------

/* Hauptroutine wo eigentlich der Sendmessage ankommen und verarbeitet werden sollte */

LRESULT CALLBACK WndProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam)
{
	int wmId, wmEvent;
	PAINTSTRUCT ps;
	HDC hdc, hdcTmp;
	static HWND	hListView, hSearchLine, hGoButton;
	static int iWindowWidth, iWindowHeight;

	switch (message)
	{
        /* .... */
	case WM_COMMAND:
		wmId    = LOWORD(wParam);
		wmEvent = HIWORD(wParam);
		// Menüauswahl bearbeiten:
		switch (wmId)
		{
		case IDM_\1:
			DialogBox(hInst, MAKEINTRESOURCE(IDD_ABOUTBOX), hWnd, About);
			break;
		case IDM_EXIT:
			DestroyWindow(hWnd);
			break;
		case ID_GOBUTTON:
			{
MessageBox(hWnd, L&quot;pog&quot;,L&quot;pog&quot;, MB_OK);
				break;
			}
		default:
			return DefWindowProc(hWnd, message, wParam, lParam);
		}
		break;
       /* .... */
</code></pre>
<p>Die Nachricht kommt, why ever, nicht an. Jemand eine Idee?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368475</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368475</guid><dc:creator><![CDATA[slfk]]></dc:creator><pubDate>Wed, 19 Sep 2007 12:47:04 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage problem on Wed, 19 Sep 2007 13:00:46 GMT]]></title><description><![CDATA[<p>slfk schrieb:</p>
<blockquote>
<p>Die Nachricht wird auch verschickt(return code 0), allerdings passiert nix</p>
</blockquote>
<p>Du sendest via SendMessage () WM_COMMAND mit ID_GOBUTTON als <strong>lParam</strong>. Aber in der WndProc fragst Du bei &quot;case WM_COMMAND&quot; den lParam nicht ab.</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368489</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368489</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 19 Sep 2007 13:00:46 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage problem on Wed, 19 Sep 2007 13:12:39 GMT]]></title><description><![CDATA[<p>hm, ok, scheint jedoch nicht das problem gelöst zu haben.</p>
<p>Wenn ich jetzt</p>
<pre><code class="language-cpp">SendMessage(hWnd, WM_COMMAND, ID_GOBUTTON, NULL);
</code></pre>
<p>schicke tut sich trotzdem nix.</p>
<p>Wenn ich nachdem senden der nachricht das nächstemal in der Hauptschleife wieder an die WM_COMMAND komme, steht dort als wmID die ID_SEARCHLINE drin (was WM_USER +2 bzw 1026 entspricht).</p>
<p>muss ich irgendwie eine unterscheidung für das loword/hiword beim sendmessage mitgeben?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368502</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368502</guid><dc:creator><![CDATA[slfk]]></dc:creator><pubDate>Wed, 19 Sep 2007 13:12:39 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage problem on Wed, 19 Sep 2007 13:28:35 GMT]]></title><description><![CDATA[<p>Prüfe mal, welches Fenster das hWnd in SendMessage (hWnd,...) ist. Hauptfenster oder Edit-Feld ?</p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368520</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368520</guid><dc:creator><![CDATA[[[global:guest]]]]></dc:creator><pubDate>Wed, 19 Sep 2007 13:28:35 GMT</pubDate></item><item><title><![CDATA[Reply to SendMessage problem on Wed, 19 Sep 2007 13:40:11 GMT]]></title><description><![CDATA[<p>merker schrieb:</p>
<blockquote>
<p>Prüfe mal, welches Fenster das hWnd in SendMessage (hWnd,...) ist. Hauptfenster oder Edit-Feld ?</p>
</blockquote>
<p>Danke, das war der Fehler....... <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f60b.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--face_savoring_food"
      title=":yum:"
      alt="😋"
    /> <img
      src="https://www.c-plusplus.net/forum/plugins/nodebb-plugin-emoji/emoji/emoji-one/1f603.png?v=ab1pehoraso"
      class="not-responsive emoji emoji-emoji-one emoji--grinning_face_with_big_eyes"
      title=":D"
      alt="😃"
    /></p>
]]></description><link>https://www.c-plusplus.net/forum/post/1368533</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1368533</guid><dc:creator><![CDATA[slfk]]></dc:creator><pubDate>Wed, 19 Sep 2007 13:40:11 GMT</pubDate></item></channel></rss>