VB中的stdPicture如何转化成Image(stdFont->Font)


最近在做一个C#项目时需要用到一个ActiveX控件,控件中使用的图片&字体对象分别为stdPicture&stdFont 和 Image、Font无法直接转换,后来在网上查了很多资料找到如下方法

[DllImport("oleaut32.dll", CharSet = CharSet.Unicode, PreserveSig =
true, EntryPoint = "OleLoadPictureFile")]
static extern void OleLoadPictureFile(Object varObj,[ MarshalAs(
UnmanagedType.IDispatch )] out Object oOut);
private void axGridControl1_OnDraw(object sender,
AxINAGRIDLib.IGridControlEvents_OnDrawEvent e)
{
System.String strFile;
strFile = "C:DevelInabyteInagridSamplesVSNetCSharpInaOwnerDrawicon.bmp";
Object lpDisp = null;
OleLoadPictureFile((Object) strFile, out lpDisp);
StdType.StdPicture pic = (StdType.StdPicture)lpDisp;
}

这种方法比较麻烦,我没有试过,有兴趣的网友可以试一下

在解决其它问题时发现了FrameWork中有个命名空间Microsoft.VisualBasic.Compatibility专门解决VB6的兼容性问题,经研究收获如下

Microsoft.VisualBasic.Compatibility.VB6.IPictureToImage()
Microsoft.VisualBasic.Compatibility.VB6.ImageToIPicture()
Microsoft.VisualBasic.Compatibility.VB6.IFontToFont()
Microsoft.VisualBasic.Compatibility.VB6.FontToIFont()

这个方法已经经过测试,可以使用

优质内容筛选与推荐>>
1、Android初学第96天
2、[BZOJ1596][Usaco2008 Jan]电话网络
3、ECSHOP怎樣可以取消用手机上网时,不自动转到mobile页面
4、关于射级跟随器中输出负载加重情况的理解
5、快排模板(附求第k大的数)


长按二维码向我转账

受苹果公司新规定影响,微信 iOS 版的赞赏功能被关闭,可通过二维码转账支持公众号。

    阅读
    好看
    已推荐到看一看
    你的朋友可以在“发现”-“看一看”看到你认为好看的文章。
    已取消,“好看”想法已同步删除
    已推荐到看一看 和朋友分享想法
    最多200字,当前共 发送

    已发送

    朋友将在看一看看到

    确定
    分享你的想法...
    取消

    分享想法到看一看

    确定
    最多200字,当前共

    发送中

    网络异常,请稍后重试

    微信扫一扫
    关注该公众号