收藏:win32 控件之 sysLink控件(超链接)

来源:https://blog.csdn.net/dai_jing/article/details/8683487

手动创建syslink(msdn):

CreateWindowEx(0, WC_LINK, "For more information, <A HREF="http://www.microsoft.com">click here</A> or <A ID="idInfo">here</A>.", 
WS_VISIBLE | WS_CHILD | WS_TABSTOP, 
rect.left, rect.top, rect.right, rect.bottom, 
hDlg, NULL, hInst, NULL);

然后响应用户点击: 

case WM_NOTIFY:

switch (((LPNMHDR)lParam)->code)
{

case NM_CLICK: // Fall through to the next case.

case NM_RETURN:
{
PNMLINK pNMLink = (PNMLINK)lParam;
LITEM item = pNMLink->item;

if ((((LPNMHDR)lParam)->hwndFrom == g_hLink) && (item.iLink == 0))
{
ShellExecute(NULL, L"open", item.szUrl, NULL, NULL, SW_SHOW);
}

else if (wcscmp(item.szID, "idInfo") == 0)
{
MessageBox(hDlg, "This isn't much help.", "Example", MB_OK);
}

break;
}
}

break;

下面是作者遇到的问题,我还没有测试:

PS:我在利用syslink进行运行时能够正常弹出对话框,因为我将对话框设置成主窗口,后来我发现,当syslink控件不是在这个主窗口上时,对话框无法弹出,看了MSDN,解释说syslink控件只支持Unicode,不知道是什么意思,如果有哪位高手路过,还请麻烦您能够花费您几分钟时间留言解决一下,不甚感激!!!

原文地址:https://www.cnblogs.com/personnel/p/9321875.html