C++ WinAPI-C++;-向窗口添加超链接

C++ WinAPI-C++;-向窗口添加超链接,c++,winapi,C++,Winapi,我想知道,我如何才能添加一个超链接(链接到一个在线网页)到我的窗口。我是否使用CreateWindow、WM_PAINT等?请给我一些建议。谢谢 编辑: 以下是我正在做的: HWND CreateSysLink(HWND hDlg, HINSTANCE hInst, RECT rect){ return CreateWindowEx(0, WC_LINK, "For more information, <A HREF=\"http

我想知道,我如何才能添加一个超链接(链接到一个在线网页)到我的窗口。我是否使用CreateWindow、WM_PAINT等?请给我一些建议。谢谢

编辑: 以下是我正在做的:

HWND CreateSysLink(HWND hDlg, HINSTANCE hInst, RECT rect){
    return 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);
}
HWND CreateSysLink(HWND hDlg、HINSTANCE hInst、RECT RECT){
返回CreateWindowEx(0,WC_链接,
“有关详细信息,”\
“或者在这里。”,
WS|u可见| WS|u儿童| WS|u禁忌,
左,右,上,右,下,
hDlg,NULL,hInst,NULL);
}
我通过运行globalhInstance=hInstance,将hInstance从WinMain参数复制到全局变量“globalhInstance”。我还创建了一个名为globalRect的全局RECT。然后在WM_CREATE上,我调用GetWindowRect(hwnd,&globalRect)(“hwnd”是WndProc的参数)。最后,在WM_命令内的switch语句中,我调用CreateSysLink(hwnd、globalhInstance、globalRect)。但它似乎不起作用。

上面链接的MSDN页面中有:

HWND CreateSysLink(HWND hDlg, HINSTANCE hInst, RECT rect)
{
    return CreateWindowExW(0, WC_LINK, 
        L"For more information, <A HREF=\"http://www.microsoft.com\">click here</A> " \
        L"or <A ID=\"idInfo\">here</A>.", 
        WS_VISIBLE | WS_CHILD | WS_TABSTOP, 
        rect.left, rect.top, rect.right, rect.bottom, 
        hDlg, NULL, hInst, NULL);
}
HWND CreateSysLink(HWND hDlg、HINSTANCE hInst、RECT RECT)
{
返回CreateWindowExW(0,WC_链接,
L“更多信息,”\
L“或在这里。”,
WS|u可见| WS|u儿童| WS|u禁忌,
左,右,上,右,下,
hDlg,NULL,hInst,NULL);
}
上面链接的MSDN页面中有:

HWND CreateSysLink(HWND hDlg, HINSTANCE hInst, RECT rect)
{
    return CreateWindowExW(0, WC_LINK, 
        L"For more information, <A HREF=\"http://www.microsoft.com\">click here</A> " \
        L"or <A ID=\"idInfo\">here</A>.", 
        WS_VISIBLE | WS_CHILD | WS_TABSTOP, 
        rect.left, rect.top, rect.right, rect.bottom, 
        hDlg, NULL, hInst, NULL);
}
HWND CreateSysLink(HWND hDlg、HINSTANCE hInst、RECT RECT)
{
返回CreateWindowExW(0,WC_链接,
L“更多信息,”\
L“或在这里。”,
WS|u可见| WS|u儿童| WS|u禁忌,
左,右,上,右,下,
hDlg,NULL,hInst,NULL);
}

您在找吗?
(0x0,
,…)如果你是一个对话框,你有VisualC++,那么你可以从工具箱拖拽“SysLink控件”。在my.cpp文件顶部的my include下面,调用GetWindowRect(hwnd,&globalRect);在WM_CREATE.com上,您是否正在查找?
(0x0,
,…)如果你是一个对话框,你有VisualC++,那么你可以从工具箱拖拽“SysLink控件”。在my.cpp文件顶部的my include下面,调用GetWindowRect(hwnd,&globalRect);关于WM_CREATE。我知道,但我的编译器说:错误:无法将参数'3'的'const wchar_t*'转换为'LPCSTR{aka const char*}'到'HWND_*CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,int,HWND,hneu,HINSTANCE,LPVOID)'btw,我正在使用GNU GCC编译器,该代码正在调用
CreateWindowEx()
,因此使用
TEXT()
宏包装字符串文本,例如:
返回CreateWindowEx(0,WC_链接,TEXT(“有关详细信息,…),…)。否则,直接调用
CreateWindowExW()
WC_链接
类不支持
CreateWindowExA()
)传递宽字符串文本(前缀为
L
),例如:
返回CreateWindowExW(0,WC_链接,L“获取更多信息,…)。我不想抱怨,但是用Text()包装它们很好,但是链接不会显示。使用CreateWindowExW和L“”显示相同的结果error@jadenPete这是基本的Win32功能,创建子窗口。如果没有看到更多的代码,我们就不知道会出什么问题。例如,是否传递有效坐标?@jadenPete在创建SysLink控件之前,必须调用InitCommonControlsEx函数,指定ICC_LINK_类。我知道,但我的编译器说:错误:无法将参数'3'的'const wchar_t*'转换为'LPCSTR{aka const char*}'到'HWND_*CreateWindowExA(DWORD,LPCSTR,LPCSTR,DWORD,int,int,int,int,int,HWND,hneu,HINSTANCE,LPVOID)'顺便说一句,我正在使用GNU GCC编译器,该代码正在调用
CreateWindowEx()的
version,所以,用
TEXT()
宏包装字符串文本,例如:
returncreateWindowEx(0,WC_链接,TEXT(“有关详细信息,…),…)。否则,直接调用
CreateWindowExW()
WC_链接
类不支持
CreateWindowExA()
)传递宽字符串文本(前缀为
L
),例如:
返回CreateWindowExW(0,WC_链接,L“获取更多信息,…)。我不想抱怨,但是用Text()包装它们很好,但是链接不会显示。使用CreateWindowExW和L“”显示相同的结果error@jadenPete这是基本的Win32功能,创建子窗口。如果没有看到更多的代码,我们就不知道会出什么问题。例如,是否传递有效坐标?@jadenPete在创建SysLink控件之前,必须调用InitCommonControlsEx函数,指定ICC_LINK_类。