<?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[icons im context menue anzeigen lassen links neben dem text]]></title><description><![CDATA[<p>Ich bin bis jetzt nicht draufgekommen wie ich für das c++ app also im context menu die icons zuweisen kann!?</p>
<p>ich brauche icons bei den context menues für:<br />
ID_BROWSEUSER<br />
ID_WHOISUSER<br />
ID_SENDFILENODE<br />
ID_PRIVMSGNODE</p>
<pre><code>void UserListContextMenu(HWND htree)
{
	TVHITTESTINFO hit;
	hit.pt.x=GET_X_LPARAM(GetMessagePos());
	hit.pt.y=GET_Y_LPARAM(GetMessagePos());
	ScreenToClient(htree,&amp;hit.pt);
	HTREEITEM h=TreeView_HitTest(htree,&amp;hit);
	if (!h) h=TreeView_GetSelection(htree);
	if (h) {
		char text[256];
		TVITEM i;
		i.mask=TVIF_TEXT|TVIF_HANDLE;
		i.hItem=h;
		i.pszText=text;
		i.cchTextMax=sizeof(text);
		text[0]=0;
		TreeView_GetItem(htree,&amp;i);
		if (i.pszText[0]) {
			HMENU hMenu=GetSubMenu(g_context_menus,2);
			POINT p;
			GetCursorPos(&amp;p);
			int x=TrackPopupMenu(hMenu,TPM_RETURNCMD|TPM_RIGHTBUTTON|TPM_LEFTBUTTON|TPM_NONOTIFY,p.x,p.y,0,GetParent(htree),NULL);
			if (x == ID_SENDFILENODE) {
				char *fnroot=(char*)malloc(65536*4);
				OPENFILENAME l={sizeof(l),};
				fnroot[0]=0;
				l.hwndOwner = GetParent(htree);
				l.lpstrFilter = &quot;All files (*.*)\0*.*\0&quot;;
				l.lpstrFile = fnroot;
				l.nMaxFile = 65535*4;
				l.lpstrTitle = &quot;Open file(s) to send&quot;;
				l.lpstrDefExt = &quot;&quot;;
				l.hInstance=g_hInst;
				l.lpfnHook=fileHookProc;
				l.lpTemplateName=MAKEINTRESOURCE(IDD_FILESUBDLG);
				l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_ALLOWMULTISELECT|OFN_ENABLETEMPLATE|OFN_ENABLEHOOK|OFN_FILEMUSTEXIST;
				if (GetOpenFileName(&amp;l)) {
					char *fn=fnroot;
					char *pathstr=&quot;&quot;;
					if (fn[strlen(fn)+1]) { //multiple files
						pathstr=fn;
						fn+=strlen(fn)+1;
					};
					while (*fn) {
						char fullfn[4096];
						fullfn[0]=0;
						if (*pathstr) {
							safe_strncpy(fullfn,pathstr,sizeof(fullfn));
							if (fullfn[strlen(fullfn)-1]!='\\') strcat(fullfn,&quot;\\&quot;);
						};
						strcat(fullfn,fn);
						Xfer_UploadFileToUser(GetParent(htree),fullfn,i.pszText,g_filedlg_ulpath);
						fn+=strlen(fn)+1;
					};
				};
				free(fnroot);
			}
			else if (x == ID_BROWSEUSER) {
				char buf[1024];
				sprintf(buf,&quot;/%s&quot;,i.pszText);
				SendMessage(g_mainwnd,WM_COMMAND,IDC_SEARCH,0);
				Search_Search(buf);
			}
			else if (x == ID_PRIVMSGNODE) {
				chat_ShowRoom(i.pszText,1);
			}
			else if (x == ID_WHOISUSER) {
				T_Message msg;
				//send a message to text that is /whois
				C_MessageChat req;
				req.set_chatstring(&quot;/whois&quot;);
				req.set_dest(i.pszText);
				req.set_src(g_regnick);
				msg.data=req.Make();
				msg.message_type=MESSAGE_CHAT;
				if (msg.data) {
					msg.message_length=msg.data-&gt;GetLength();
					g_mql-&gt;send(&amp;msg);
				};
			};
		};
	};
}
</code></pre>
<p>ich habe auf die gleiche weise wie bei buttons die icons auch beim<br />
context menu angewendet aber es zeigt kein icon an!<br />
siehe unten bei ID_BROWSEUSER</p>
<pre><code>CreateTooltip(GetDlgItem(hwndDlg,IDC_SEARCH),&quot;Open browser&quot;);
			SendDlgItemMessage(hwndDlg,IDC_SEARCH,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BROWSE),IMAGE_ICON,32,32,0));

			CreateTooltip(GetDlgItem(hwndDlg,ID_VIEW_TRANSFERS),&quot;Transfers&quot;);
			SendDlgItemMessage(hwndDlg,ID_VIEW_TRANSFERS,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_XFERS),IMAGE_ICON,32,32,0));

			SendDlgItemMessage(hMenu,ID_BROWSEUSER,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BROWSE),IMAGE_ICON,16,16,0));
</code></pre>
<p>ich weis wie mam in context menu beim mfc icons einbindet so etwa</p>
<pre><code>void CMuteDownloadListCtrl::CreateMenu()
{
	CString	strTemp;

	m_RightClkMenu.CreatePopupMenu();
	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CAPTION_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AddMenuTitle( strTemp, true );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CANCEL_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CANCEL, strTemp, MAKEINTRESOURCE(IDI_CANCEL_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CLEAR_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR, strTemp, MAKEINTRESOURCE(IDI_CLEAR_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CLEARCOMPLETE_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR_COMPLETE, strTemp, MAKEINTRESOURCE(IDI_CLEAR_COMPLETE_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_REMOVESTALLED_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR_STALLED, strTemp, MAKEINTRESOURCE(IDI_REMOVE_STALLED_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_SEARCH_QUEUE_ITEM_NEXT_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_SEARCH_QUEUE_ITEM_NEXT, strTemp, MAKEINTRESOURCE(IDI_PRIORITY_ICON) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/topic/146938/icons-im-context-menue-anzeigen-lassen-links-neben-dem-text</link><generator>RSS for Node</generator><lastBuildDate>Wed, 15 Apr 2026 06:33:04 GMT</lastBuildDate><atom:link href="https://www.c-plusplus.net/forum/topic/146938.rss" rel="self" type="application/rss+xml"/><pubDate>Fri, 12 May 2006 08:44:11 GMT</pubDate><ttl>60</ttl><item><title><![CDATA[Reply to icons im context menue anzeigen lassen links neben dem text on Fri, 12 May 2006 08:44:11 GMT]]></title><description><![CDATA[<p>Ich bin bis jetzt nicht draufgekommen wie ich für das c++ app also im context menu die icons zuweisen kann!?</p>
<p>ich brauche icons bei den context menues für:<br />
ID_BROWSEUSER<br />
ID_WHOISUSER<br />
ID_SENDFILENODE<br />
ID_PRIVMSGNODE</p>
<pre><code>void UserListContextMenu(HWND htree)
{
	TVHITTESTINFO hit;
	hit.pt.x=GET_X_LPARAM(GetMessagePos());
	hit.pt.y=GET_Y_LPARAM(GetMessagePos());
	ScreenToClient(htree,&amp;hit.pt);
	HTREEITEM h=TreeView_HitTest(htree,&amp;hit);
	if (!h) h=TreeView_GetSelection(htree);
	if (h) {
		char text[256];
		TVITEM i;
		i.mask=TVIF_TEXT|TVIF_HANDLE;
		i.hItem=h;
		i.pszText=text;
		i.cchTextMax=sizeof(text);
		text[0]=0;
		TreeView_GetItem(htree,&amp;i);
		if (i.pszText[0]) {
			HMENU hMenu=GetSubMenu(g_context_menus,2);
			POINT p;
			GetCursorPos(&amp;p);
			int x=TrackPopupMenu(hMenu,TPM_RETURNCMD|TPM_RIGHTBUTTON|TPM_LEFTBUTTON|TPM_NONOTIFY,p.x,p.y,0,GetParent(htree),NULL);
			if (x == ID_SENDFILENODE) {
				char *fnroot=(char*)malloc(65536*4);
				OPENFILENAME l={sizeof(l),};
				fnroot[0]=0;
				l.hwndOwner = GetParent(htree);
				l.lpstrFilter = &quot;All files (*.*)\0*.*\0&quot;;
				l.lpstrFile = fnroot;
				l.nMaxFile = 65535*4;
				l.lpstrTitle = &quot;Open file(s) to send&quot;;
				l.lpstrDefExt = &quot;&quot;;
				l.hInstance=g_hInst;
				l.lpfnHook=fileHookProc;
				l.lpTemplateName=MAKEINTRESOURCE(IDD_FILESUBDLG);
				l.Flags = OFN_HIDEREADONLY|OFN_EXPLORER|OFN_ALLOWMULTISELECT|OFN_ENABLETEMPLATE|OFN_ENABLEHOOK|OFN_FILEMUSTEXIST;
				if (GetOpenFileName(&amp;l)) {
					char *fn=fnroot;
					char *pathstr=&quot;&quot;;
					if (fn[strlen(fn)+1]) { //multiple files
						pathstr=fn;
						fn+=strlen(fn)+1;
					};
					while (*fn) {
						char fullfn[4096];
						fullfn[0]=0;
						if (*pathstr) {
							safe_strncpy(fullfn,pathstr,sizeof(fullfn));
							if (fullfn[strlen(fullfn)-1]!='\\') strcat(fullfn,&quot;\\&quot;);
						};
						strcat(fullfn,fn);
						Xfer_UploadFileToUser(GetParent(htree),fullfn,i.pszText,g_filedlg_ulpath);
						fn+=strlen(fn)+1;
					};
				};
				free(fnroot);
			}
			else if (x == ID_BROWSEUSER) {
				char buf[1024];
				sprintf(buf,&quot;/%s&quot;,i.pszText);
				SendMessage(g_mainwnd,WM_COMMAND,IDC_SEARCH,0);
				Search_Search(buf);
			}
			else if (x == ID_PRIVMSGNODE) {
				chat_ShowRoom(i.pszText,1);
			}
			else if (x == ID_WHOISUSER) {
				T_Message msg;
				//send a message to text that is /whois
				C_MessageChat req;
				req.set_chatstring(&quot;/whois&quot;);
				req.set_dest(i.pszText);
				req.set_src(g_regnick);
				msg.data=req.Make();
				msg.message_type=MESSAGE_CHAT;
				if (msg.data) {
					msg.message_length=msg.data-&gt;GetLength();
					g_mql-&gt;send(&amp;msg);
				};
			};
		};
	};
}
</code></pre>
<p>ich habe auf die gleiche weise wie bei buttons die icons auch beim<br />
context menu angewendet aber es zeigt kein icon an!<br />
siehe unten bei ID_BROWSEUSER</p>
<pre><code>CreateTooltip(GetDlgItem(hwndDlg,IDC_SEARCH),&quot;Open browser&quot;);
			SendDlgItemMessage(hwndDlg,IDC_SEARCH,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BROWSE),IMAGE_ICON,32,32,0));

			CreateTooltip(GetDlgItem(hwndDlg,ID_VIEW_TRANSFERS),&quot;Transfers&quot;);
			SendDlgItemMessage(hwndDlg,ID_VIEW_TRANSFERS,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_XFERS),IMAGE_ICON,32,32,0));

			SendDlgItemMessage(hMenu,ID_BROWSEUSER,BM_SETIMAGE,IMAGE_ICON,
				(LPARAM)LoadImage(g_hInst,MAKEINTRESOURCE(IDI_BROWSE),IMAGE_ICON,16,16,0));
</code></pre>
<p>ich weis wie mam in context menu beim mfc icons einbindet so etwa</p>
<pre><code>void CMuteDownloadListCtrl::CreateMenu()
{
	CString	strTemp;

	m_RightClkMenu.CreatePopupMenu();
	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CAPTION_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AddMenuTitle( strTemp, true );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CANCEL_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CANCEL, strTemp, MAKEINTRESOURCE(IDI_CANCEL_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CLEAR_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR, strTemp, MAKEINTRESOURCE(IDI_CLEAR_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_CLEARCOMPLETE_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR_COMPLETE, strTemp, MAKEINTRESOURCE(IDI_CLEAR_COMPLETE_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_REMOVESTALLED_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_CLEAR_STALLED, strTemp, MAKEINTRESOURCE(IDI_REMOVE_STALLED_ICON) );

	strTemp = m_ExtStr.LoadString( IDS_DLOAD_RT_CLK_MENU_SEARCH_QUEUE_ITEM_NEXT_ENG + g_unStringLanguageIdOffset );
	m_RightClkMenu.AppendMenu(MF_STRING,MP_SEARCH_QUEUE_ITEM_NEXT, strTemp, MAKEINTRESOURCE(IDI_PRIORITY_ICON) );
}
</code></pre>
]]></description><link>https://www.c-plusplus.net/forum/post/1056208</link><guid isPermaLink="true">https://www.c-plusplus.net/forum/post/1056208</guid><dc:creator><![CDATA[scooby]]></dc:creator><pubDate>Fri, 12 May 2006 08:44:11 GMT</pubDate></item></channel></rss>