none
为什么从windows平台移植到wince就不行了?? RRS feed

  • 问题

  • 这是一个画正弦线的程序!在windows平台下运行很正常!但是移植到wince平台下时就出了问题!
    一个是System.Drawing.Graphics g = Graphics.FromHwnd(this.Handle);系统说不包含FromHwnd的定义!
    还有就是找不到PointF的命名空间!
    请指教

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Text;
    using System.Windows.Forms;

    namespace zhengxianxian
    {
    public partial class Form1 : Form
    {
    public Form1()
    {
    InitializeComponent();
    }

    private void button1_Click(object sender, EventArgs e)
    {
    double distance = 200.0;
    System.Drawing.Graphics g = Graphics.FromHwnd(this.Handle);
    g.Clear(this.BackColor);
    Pen pn = new Pen(Color.Green, 2);
    int maxY = this.Height;//获取窗体的高
    int maxX = this.Width;//获取窗体的宽

    double n = 2.0 * Math.PI / 200.0;
    int lmin = 0;
    int rmax = 200;
    int count = rmax - lmin;
    PointF[] mypoint = new PointF[count + 1];
    int x = 0;
    for (int i = lmin; i <= rmax; i++)
    {

    double temp = 0.5 * (maxY - maxY * Math.Sin(n * i));
    mypoint[x] = new PointF((float)i, (float)temp);
    x++;
    }
    g.DrawCurve(pn, mypoint);
    pn.Dispose();
    g.Dispose();

    }
    }
    }

    2010年3月29日 6:05

答案

  • hello

    关于你提出的问题,我查了一下,答复如下:

    1. System.Drawing.Graphics g = Graphics.FromHwnd(this.Handle) 应该写成

       System.Drawing.Graphics myGraph = Graphics.FromHdc(hwnd);

       也就是说,.NET CF下,应该是Graphics.FromHdc(),而非Graphics.FromHwnd()

    2. PointF在.NET CF中没有被支持。


    施炯
    2010年3月30日 5:21
    版主