首页 > 代码库 > winform全屏打开CHM帮助文档
winform全屏打开CHM帮助文档
系统自带的打开CHM的方法不能指定打开窗口的大小。
下面是System.Windows.Forms.Help.ShowHelp的介绍。
对于需要全屏(当然也可以指定大小,只需要修改参数)打开的可以参考下面的代码
public static class HelpFileUtility { public static void OpenHelperFileFullScreen(Control control,string fileName) { Help.ShowHelp(control, fileName); control.BeginInvoke(new MethodInvoker(() => HelpFileUtility.MoveHelpWindow(new Rectangle(0, 0, Screen.PrimaryScreen.Bounds.Width, Screen.PrimaryScreen.Bounds.Height)))); } public static void MoveHelpWindow(Rectangle rc) { EnumThreadWndProc callback = (hWnd, lp) => { // Check if this is the help window StringBuilder sb = new StringBuilder(260); GetClassName(hWnd, sb, sb.Capacity); if (sb.ToString() != "HH Parent") return true; MoveWindow(hWnd, rc.Left, rc.Top, rc.Width, rc.Height, false); return false; }; foreach (ProcessThread pth in Process.GetCurrentProcess().Threads) { EnumThreadWindows(pth.Id, callback, IntPtr.Zero); } } // P/Invoke declarations private delegate bool EnumThreadWndProc(IntPtr hWnd, IntPtr lp); [DllImport("user32.dll")] private static extern bool EnumThreadWindows(int tid, EnumThreadWndProc callback, IntPtr lp); [DllImport("user32.dll")] private static extern int GetClassName(IntPtr hWnd, StringBuilder buffer, int buflen); [DllImport("user32.dll")] private static extern bool MoveWindow(IntPtr hWnd, int x, int y, int w, int h, bool repaint); }
winform全屏打开CHM帮助文档
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。