链接到MessageBox VC ++ 2008 Windows XP中的文件

经过一些处理后,我的程序显示一个消息框,说你可以读取一个日志文件,以了解更多的信息。 我想显示一个文件的链接,而不是它的名字。 这是怎么做的?

非常感谢

更新:

IDD_RESULT_DIALOG DIALOGEX 0, 0, 228, 58 STYLE DS_SETFONT | DS_MODALFRAME | WS_POPUP | WS_VISIBLE | WS_CAPTION CAPTION "Fax/Modem testing tool" FONT 8, "Helv", 0, 0, 0x1 BEGIN PUSHBUTTON "Cancelar",IDC_BUTTON1,174,38,50,14 CONTROL "<a>SysLink1</a>",IDC_SYSLINK1,"SysLink",WS_TABSTOP,105,22,32,14 END 

这是创buildsyslink控件的rc文件上的代码。

 BOOL CALLBACK ResultDlg(HWND hDlg, UINT msg, WPARAM wParam, LPARAM lParam) { switch (msg) /* manipulador del mensaje */ { case WM_INITDIALOG: SetWindowText(GetDlgItem(hDlg,IDC_SYSLINK1), (LPCSTR)"Visit my web site" ); return TRUE; case WM_COMMAND: EndDialog(hDlg, FALSE); return TRUE; } return FALSE; } 

这是使用SetWindowText的地方…

该对话框不显示。 如果一个Syslink控件embedded在对话框中。 我不使用MFC …这可能是问题吗?

您可以提供一个将调用Win32函数ShellExecute来打开日志文件的按钮。

恕我直言,你有两个选择:

A)从头开始创建自己的对话框

B)使用一个线程钩子(SetWindowsHookEx)并捕获MessageBox()的初始化,调整它一点点,并添加自己的控件(XP和更高版本有一个链接控件 ,支持基本的HTML。该控件也存在于2000年,但是无证,并有不同的类名)

在我看来,最直接的解决方案是将自己的对话框看起来像一个标准的消息窗口框,并使用链接控制(在此线程中由Anders引用)代替标准的静态文本。

我认为这比SetWindowHookEx路线更好。