码迷,mamicode.com
首页 > Windows程序 > 详细

winform全屏打开CHM帮助文档

时间:2017-06-30 14:00:54      阅读:394      评论:0      收藏:0      [点我收藏+]

标签:stringbu   chm   user   color   callback   帮助   system   pac   div   

系统自带的打开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帮助文档

标签:stringbu   chm   user   color   callback   帮助   system   pac   div   

原文地址:http://www.cnblogs.com/ignorant/p/7098134.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!