1.我的程序要浏览网页,有不使用IE控件浏览网页的其他方法吗?
2.不能用脚本,因为IE控件内连接的网页同时也会被IE浏览器访问,如果使用脚本的话将会把IE浏览器中的滚动条隐藏掉!
3.关于doinfo(野比效果器) 说的方法请问具体如何实现?有类似源代码吗?
4.使用SendMessage可以对ListBox等一些控件实现上下左右滚动的动作,但同样的方法使用在IE控件或其他的一些控件上,无法实现其功能,请问有谁能实现这样的功能?该怎么去实现?最后,如何确实能解决,分可以另外再给!
2.不能用脚本,因为IE控件内连接的网页同时也会被IE浏览器访问,如果使用脚本的话将会把IE浏览器中的滚动条隐藏掉!
3.关于doinfo(野比效果器) 说的方法请问具体如何实现?有类似源代码吗?
4.使用SendMessage可以对ListBox等一些控件实现上下左右滚动的动作,但同样的方法使用在IE控件或其他的一些控件上,无法实现其功能,请问有谁能实现这样的功能?该怎么去实现?最后,如何确实能解决,分可以另外再给!
解决方案 »
- C#怎么注册大漠插件!
- 多线程问题: CLR 无法从 COM 上下文 0x498640 转换为 COM 上下文 0x498920
- 属性值无效,但是没有重名的
- 请教个关于C#进度条的问题!
- DataGridView 基础问题
- 请问如何在一个类中使用窗体控件的属性
- 如何让一个Label充满整个Form ?
- C#里windows.forms.Radiobutton里显示的内容怎么设置换行
- 如何利用TreeView動態生成樹狀結構?高分求教!
- WebServer C#解码(post提交)!!!有重谢!
- 能否设计时创建空白的水晶报表, 而报表的具体的内容(如:页眉, 页脚, 内容等)由程序代码动态创建?!
- 有没有办法获取从0到250之间的随机整数值?
把下面的定义加入Project:
using System.Runtime.InteropServices; struct DOCHOSTUIINFO {
public uint cbSize;
public uint dwFlags;
public uint dwDoubleClick;
public IntPtr pchHostCss;
public IntPtr pchHostNS;
} [ComImport,
Guid("BD3F23C0-D43E-11CF-893B-00AA00BDCE1A"),
InterfaceType(ComInterfaceType.InterfaceIsIUnknown) ]
public interface IDocHostUIHandler
{
public void ShowContextMenu(int dwContext, IntPtr pPoint, IntPtr pCommandTarget, IntPtr HTMLTagElement);
public void GetHostInfo(ref DOCHOSTUIINFO theHostUIInfo);
public void ShowUI(int dwID, IntPtr pActiveObject, IntPtr pCommandTarget, IntPtr pFrame, IntPtr pDoc);
public void HideUI();
public void UpdateUI();
public void EnableModeless(int fEnable);
public void OnDocWindowActivate(int fActivate);
public void OnFrameWindowActivate(int fActivate);
public void ResizeBorder(IntPtr prcBorder, int pUIWindow, int fFrameWindow);
public void TranslateAccelerator(IntPtr lpMsg, IntPtr pguidCmdGroup, int nCmdID);
public void GetOptionKeyPath(IntPtr pchKey, int dw);
public void GetDropTarget(IntPtr pDropTarget, IntPtr ppDropTarget);
public void GetExternal(IntPtr ext);
public void TranslateUrl(int dwTranslate, IntPtr pchURLIn, IntPtr ppchURLOut);
public void FilterDataObject(IntPtr pDO, IntPtr ppDORet);
} 你用来Host WebBrowser的Form需要实现上面的Interface:
public class YourForm : System.Windows.Forms.Form,
IDocHostUIHandler 实现上面的函数,除了GetHostInfo以外,其余只要给个空函数体就好({})。
public void GetHostInfo(ref DOCHOSTUIINFO HostUIInfo)
{
HostUIInfo.dwFlags |= (DOCHOSTUIFLAG.DOCHOSTUIFLAG_SCROLL_NO);
}
//DONE!
mshtml.IHTMLElement2 body = doc.body as mshtml.IHTMLElement2;
body.put_scrollTop(200000);
DOCHOSTUIFLAG_DIALOG = 0x00000001,
DOCHOSTUIFLAG_DISABLE_HELP_MENU = 0x00000002,
DOCHOSTUIFLAG_NO3DBORDER = 0x00000004,
DOCHOSTUIFLAG_SCROLL_NO = 0x00000008,
DOCHOSTUIFLAG_DISABLE_SCRIPT_INACTIVE = 0x00000010,
DOCHOSTUIFLAG_OPENNEWWIN = 0x00000020,
DOCHOSTUIFLAG_DISABLE_OFFSCREEN = 0x00000040,
DOCHOSTUIFLAG_FLAT_SCROLLBAR = 0x00000080,
DOCHOSTUIFLAG_DIV_BLOCKDEFAULT = 0x00000100,
DOCHOSTUIFLAG_ACTIVATE_CLIENTHIT_ONLY = 0x00000200,
DOCHOSTUIFLAG_OVERRIDEBEHAVIORFACTORY = 0x00000400,
DOCHOSTUIFLAG_CODEPAGELINKEDFONTS = 0x00000800,
DOCHOSTUIFLAG_URL_ENCODING_DISABLE_UTF8 = 0x00001000,
DOCHOSTUIFLAG_URL_ENCODING_ENABLE_UTF8 = 0x00002000,
DOCHOSTUIFLAG_ENABLE_FORMS_AUTOCOMPLETE = 0x00004000,
DOCHOSTUIFLAG_ENABLE_INPLACE_NAVIGATION = 0x00010000,
DOCHOSTUIFLAG_IME_ENABLE_RECONVERSION = 0x00020000,
DOCHOSTUIFLAG_THEME = 0x00040000,
DOCHOSTUIFLAG_NOTHEME = 0x00080000,
DOCHOSTUIFLAG_NOPICS = 0x00100000,
DOCHOSTUIFLAG_NO3DOUTERBORDER = 0x00200000,
DOCHOSTUIFLAG_DISABLE_EDIT_NS_FIXUP = 0x1,
DOCHOSTUIFLAG_LOCAL_MACHINE_ACCESS_CHECK = 0x1,
DOCHOSTUIFLAG_DISABLE_UNTRUSTEDPROTOCOL = 0x1
}