这几天的问题都没人回答。。。CSDN果然今非昔比呀
函数及结构体定义在下边有代码。。。
现在问题是不报错但也显示不出来图像
private void MainForm_Load(object sender, EventArgs e)
{
//建立链接
if (!C__Funtion.setupLongConn(""))
return;
//初始化GDI+,难道这里也要调用GDIPLUS。DLL GdiplusStartup()?
gmap = this.MapContainer.CreateGraphics();
//画图层
C__Funtion.PaintInView(C__Funtion.tmpsPnt, //图层数组
C__Funtion.tmpsPnt.Length, //数组长度
C__Funtion.GetDC(this.MapContainer.Handle), //窗口HDC句柄
100, //宽度
100, //高度
100.0, //中心位置-X
100.0, //中心位置-Y
9, //精细度
enumPTIVflag.PTIV_R2PSMP);
}
}
[DllImport("TQSDEModule.dll", CharSet = CharSet.Ansi)]
public extern static bool setupLongConn(string lpszConn);
[DllImport("TQSDEModule.dll", CharSet = CharSet.Ansi)]
public extern static void PaintInView(
sPnt[] pntTypeArray,
int arrSize,
IntPtr pDC,
int rcWidth,
int rcHeight,
double central_x,
double central_y,
int level,
enumPTIVflag ptivflag);
public struct sPnt
{
public enumShangHaiVecType ishType;
public bool bPaint;
public char szFilter;
public sPnt(enumShangHaiVecType _ishType, bool _bPaint, char _szFilter)
{
this.ishType = _ishType;
this.bPaint = _bPaint;
this.szFilter = _szFilter;
}
}
#region 重绘图层操作类型
/// <summary>
///
/// </summary>
public enum enumPTIVflag
{
PTIV_R2PSMP,
PTIV_R2PPRO,
PTIV_ONLYPAINT,
PTIV_NONE
}
#endregion
------解决方案--------------------gmap的GetHdc 方法就可以得到HDC啊,它就是C++里面的HDC,只不过在C#里面是IntPtr类型
这东西成没成功也不能光看你这头,要联合调试
------解决方案--------------------路过,虽然不太懂,仍希望有人能帮你解决!
------解决方案--------------------问题要有人回答就一定要有人顶,往死里顶!
------解决方案--------------------没研究过!
------解决方案--------------------不熟悉这方面,帮你顶顶
------解决方案--------------------
------解决方案--------------------这方面没弄过
帮你顶下了
------解决方案--------------------虽然我不懂,但我会尽力帮顶!
------解决方案--------------------up
------解决方案--------------------为什么是48分呢?
------解决方案--------------------