青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品

milkyway的窩

最初想法的誕生地

 

Windows CE5.0下繪制實時數據曲線

         繪制思路:做一個自定義控件插入界面中
    具體步驟:
    (1)橫軸劃分為若干點,使用Moveto+Lineto連線,定時刷新實現動態效果;
     (2)在程序中,使用CPaintDC,CClientDc,CDC,CBitMap,CBrush等繪圖類;
      (3)繪圖程序分為幾大部分:注冊類句柄、刷新機制、設定坐標系、繪圖;

部分代碼如下:

BOOL CLineChartCtrl::RegisterWndClass(HINSTANCE hInstance)
{
 WNDCLASSW wc;
 wc.lpszClassName = TEXT("LineChartCtrl"); // matches class name in client
 。。。
 return (::RegisterClass(&wc) != 0 );  }

void CLineChartCtrl::InvalidateCtrl()
{
 CClientDC dc(this);
 CRect rcClient;
 GetClientRect(rcClient);

 if (m_MemDC.GetSafeHdc() == NULL)
 {
  m_MemDC.CreateCompatibleDC(&dc);
  m_Bitmap.CreateCompatibleBitmap(&dc,rcClient.Width(),rcClient.Height());
  m_MemDC.SelectObject(m_Bitmap);
     m_MemDC.SetBkColor(RGB(255,255,255));              //靜態背景色
  CBrush bkBrush(RGB(160,160,160));
  m_MemDC.FillRect(rcClient,&bkBrush);
 }
InvalidateRect(rcClient, FALSE);
}

float CLineChartCtrl::SetPos(int nIndex, float nPos)
{
 。。。}

void CLineChartCtrl::OnPaint()
{
 CPaintDC dc(this); // device context for painting
 
 CRect rcClient;
 GetClientRect(rcClient);

 // draw scale
 if (m_MemDC.GetSafeHdc() != NULL)
  dc.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &m_MemDC, 0, 0, SRCCOPY);
}

void CLineChartCtrl::DrawSpike()
{
 CRect rcClient;
 GetClientRect(rcClient);

 if (m_MemDC.GetSafeHdc() != NULL)             //豎線間隔寬度
 {
  m_MemDC.BitBlt(0, 0, rcClient.Width(), rcClient.Height(), &m_MemDC, 20, 0, SRCCOPY);

  // draw scale
  CRect rcRight = rcClient;
  rcRight.left = rcRight.right - 20;
     m_MemDC.SetBkColor(RGB(255,255,255));                       //運行時背景色

 CBrush bkBrush(RGB(160,160,160));                  
 m_MemDC.FillRect(rcRight,&bkBrush);

    static BOOL bDrawVerticle = FALSE;
  bDrawVerticle = !bDrawVerticle;
  if (bDrawVerticle)
  {
      CPen pen(PS_SOLID, 1, RGB(128,128,128));                      //縱軸色
   CPen* pOldPen = m_MemDC.SelectObject(&pen);
   m_MemDC.MoveTo(CPoint(rcClient.right-2, rcClient.top));
   m_MemDC.LineTo(CPoint(rcClient.right-2, rcClient.bottom));
   m_MemDC.SelectObject(pOldPen);
  }

  int nCount = m_items.GetSize();
  CLineChartItem* pItem;
  CPoint ptOld, ptNew;
  for (int i=0; i<nCount; i++)
  {
   pItem = m_items.GetAt(i);

   float  nRange = pItem->m_nUpper - pItem->m_nLower;
   ptOld.x = rcRight.left-1;                            // Minus one to make sure to draw inside the area
   ptNew.x = rcRight.right-1;
   ptOld.y = (int)((((float)(nRange - pItem->m_nOldPos))/(float)nRange)
    * (float)rcRight.Height());
   ptNew.y = (int)((((float)(nRange - pItem->m_nPos))/(float)nRange)
    * (float)rcRight.Height());

   CPen pen(PS_SOLID, 1, pItem->m_colorLine);
   CPen* pOldPen = m_MemDC.SelectObject(&pen);
   m_MemDC.MoveTo(ptOld);
   m_MemDC.LineTo(ptNew);
   m_MemDC.SelectObject(pOldPen);
  }
 }
}

BOOL CLineChartCtrl::Add(COLORREF color, float Upper, float Lower)
{
 CLineChartItem* pItem = new CLineChartItem;
 pItem->m_colorLine = color;
 pItem->m_nLower = Lower;
 pItem->m_nUpper = Upper;
 pItem->m_nPos = 0;
 pItem->m_nOldPos = 0;

 try
 {
  m_items.Add(pItem);

  InvalidateCtrl();
  return TRUE;
 }
 
  
 catch (CMemoryException* e)
 {
  if (pItem !=NULL)
   delete pItem;
  e->Delete();
  return FALSE;
 } 

}

void CLineChartCtrl::Go()
{
 DrawSpike();

 Invalidate(FALSE);
}

   注意的幾點:(1) Windows CE采用unicode,必須寫諸如WNDCLASSW;LoadCursorW;
                           (2) EVC下的CBrush不能使用兩個參數如CBrush(HS_Cross,RGB(0,0,0));
                           (3)改動stdAfx.h包含的頭文件;
                           (4)在void CVoltagecontrolDlg::DoDataExchange(CDataExchange* pDX)里加入   DDX_Control(pDX, IDC_LineChartCtrl, m_LineChart);  在BOOL CVoltagecontrolDlg::OnInitDialog()里加入  m_LineChart.SubclassDlgItem(IDC_LineChartCtrl, this);
                          (5)在設置自定義空間屬性ID必須為IDC_LineChartCtrl,CLASS為LineChartCtrl,相應程序里的注冊句柄名稱也設成LineChartCtrl;
                          (6)程序中改變豎線間隔的是其寬度,而畫豎線的時間間隔是2*Timer;

  現有的運行效果:
 
橫軸采用五個Edit控件使時間數值能夠動態變化;圖形繪制從坐標軸右側開始,橫軸隨時間移動; 采樣時間為1S;達到控制精度(error<0.05)要求時停止采集數據并且彈出提示對話框。

問題:(1)運行程序將出現三個警告:位于Wincore.cpp的line 348,349,4199。選擇ignore后,可以運行程序。
           (2)縱軸坐標通過實際值標定,且沒有畫出刻度線。

posted on 2007-05-10 14:42 milkyway 閱讀(3258) 評論(2)  編輯 收藏 引用 所屬分類: 課題進展evc

評論

# re: Windows CE5.0下繪制實時數據曲線 2007-05-23 10:32 milkyway

Assertion Failed: voltagecontrol: File wincore.cpp, Line 348
Assertion Failed: voltagecontrol: File wincore.cpp, Line 349
Error: Trying to use SubclassWindow with incorrect CWnd
derived class.
hWnd = $7C017E20 (nIDC=$03F4) is not a CWnd.
Assertion Failed: voltagecontrol: File wincore.cpp, Line 4199

警告調試信息  回復  更多評論   

# re: Windows CE5.0下繪制實時數據曲線 2011-01-17 05:03 jkl

覺得挻惡心的.不過有總比沒有好.   回復  更多評論   

導航

統計

公告

隨筆皆原創,文章乃轉載. 歡迎留言!

常用鏈接

留言簿(37)

隨筆分類(104)

隨筆檔案(101)

文章分類(51)

文章檔案(53)

wince牛人

搜索

積分與排名

最新評論

閱讀排行榜

評論排行榜

青青草原综合久久大伊人导航_色综合久久天天综合_日日噜噜夜夜狠狠久久丁香五月_热久久这里只有精品
  • <ins id="pjuwb"></ins>
    <blockquote id="pjuwb"><pre id="pjuwb"></pre></blockquote>
    <noscript id="pjuwb"></noscript>
          <sup id="pjuwb"><pre id="pjuwb"></pre></sup>
            <dd id="pjuwb"></dd>
            <abbr id="pjuwb"></abbr>
            欧美顶级艳妇交换群宴| 六月天综合网| 欧美日韩一区二区高清| 亚洲欧美亚洲| 一区二区三区免费看| 亚洲精品国久久99热| 久久人人爽人人爽| 久久精品亚洲| 一区二区欧美精品| 亚洲一区二区三区在线视频| 香蕉国产精品偷在线观看不卡| 欧美在线不卡视频| 免费成人在线观看视频| 91久久国产综合久久| 亚洲自拍偷拍麻豆| 蜜臀av性久久久久蜜臀aⅴ四虎| 欧美美女喷水视频| 激情欧美丁香| 亚洲欧美美女| 亚洲国产裸拍裸体视频在线观看乱了中文| 日韩一二三区视频| 久久综合伊人77777| 国产精品无码专区在线观看| 亚洲精品国产拍免费91在线| 久久免费国产精品| 一区二区三区精品视频在线观看| 久久综合一区二区三区| 国产亚洲精品bt天堂精选| 亚洲三级免费电影| 亚洲国产第一| 欧美二区在线观看| 亚洲乱码视频| 99综合视频| 性欧美xxxx视频在线观看| 亚洲人成免费| 欧美日韩一区二区精品| 99亚洲一区二区| 一区二区三区精品国产| 国产精品大片| 久久久www成人免费精品| 欧美在线91| 亚洲成人直播| 亚洲伦理中文字幕| 国产免费成人在线视频| 久久午夜精品| 欧美超级免费视 在线| 亚洲福利视频网| 亚洲毛片一区| 激情综合久久| 亚洲网站视频| 亚洲国产另类精品专区| 亚洲承认在线| 国外视频精品毛片| av成人手机在线| 在线成人亚洲| 在线亚洲激情| 日韩亚洲在线| 欧美大片一区二区三区| 性欧美暴力猛交69hd| 免费成人av| 老司机午夜精品| 国产精品美腿一区在线看| 欧美国产欧美综合| 亚洲日本电影| 欧美xx69| 欧美日韩一区二区欧美激情| 男女激情视频一区| 韩国三级在线一区| 欧美一区二区三区精品| 欧美日韩免费高清一区色橹橹| 午夜一区二区三区在线观看| 欧美国产视频在线| 欧美顶级少妇做爰| 亚洲精品一区在线观看香蕉| 免费成年人欧美视频| 亚洲高清不卡| 午夜精品一区二区三区电影天堂| 亚洲丝袜av一区| 国产日韩精品电影| 亚洲丶国产丶欧美一区二区三区| 亚洲国产成人精品久久| 欧美激情aⅴ一区二区三区| 亚洲免费大片| 欧美日韩亚洲一区二区| 在线综合+亚洲+欧美中文字幕| 欧美亚洲三区| 精品99一区二区| 欧美黄色大片网站| 午夜精品久久久久久久男人的天堂| 久久久青草青青国产亚洲免观| 极品少妇一区二区三区| 欧美色图天堂网| 久久久久一区二区| 亚洲一区二区精品在线| 免费观看在线综合色| 亚洲欧美激情视频在线观看一区二区三区| 好吊成人免视频| 国产精品女人网站| 欧美日韩国产一级片| 欧美成人免费观看| 久久国内精品视频| 午夜在线视频观看日韩17c| 欧美国产精品日韩| 蜜桃av噜噜一区| 久久久精品2019中文字幕神马| 亚洲一区二区三区欧美| 夜夜嗨av一区二区三区| 鲁大师影院一区二区三区| 99亚洲视频| 亚洲尤物视频网| 亚洲免费久久| 亚洲欧美日韩直播| 先锋影音久久久| 亚洲欧美日韩一区在线观看| 日韩亚洲欧美高清| 亚洲伊人久久综合| 亚洲无线视频| 欧美在线www| 欧美成人综合| 国产精品日韩精品| 国语自产精品视频在线看抢先版结局 | 日韩亚洲成人av在线| 亚洲黑丝在线| 在线性视频日韩欧美| 午夜精品久久久久久久99樱桃| 亚洲欧美激情一区| 久久综合伊人77777| 欧美久久精品午夜青青大伊人| 欧美日韩国产一区二区三区| 国产亚洲欧美色| 99国产精品99久久久久久| 欧美中文在线视频| 亚洲精品欧洲精品| 免费看的黄色欧美网站| 国产精品综合色区在线观看| 亚洲精品欧美日韩专区| 久久精品国产精品亚洲精品| 亚洲精品久久| 欧美国产亚洲视频| 在线日韩一区二区| 久久成人综合视频| 亚洲午夜一二三区视频| 欧美成人自拍视频| 亚洲精品乱码久久久久| 久久综合网络一区二区| 欧美一区二区三区的| 国产日韩欧美亚洲| 欧美电影免费观看高清| 亚洲国产91精品在线观看| 亚洲中午字幕| 亚洲欧美日本国产专区一区| 国产精品久久久久久久久果冻传媒 | 欧美激情在线播放| 欧美成人综合网站| 亚洲视频一起| 久久er精品视频| 国产主播一区二区三区四区| 久久精品国产一区二区三区免费看| 亚洲一级电影| 在线看片第一页欧美| 欧美福利视频网站| 欧美精品一区二区三区蜜桃 | 国产精品嫩草影院av蜜臀| 亚洲欧美日产图| 久久精品人人爽| 在线亚洲美日韩| 久久免费国产| 亚洲欧美一级二级三级| 久久免费精品日本久久中文字幕| 亚洲毛片网站| 亚洲免费成人| 欧美中文在线免费| 日韩午夜av在线| 久久国产天堂福利天堂| 亚洲午夜伦理| 欧美 日韩 国产 一区| 欧美资源在线观看| 欧美日韩午夜视频在线观看| 欧美成人免费播放| 国际精品欧美精品| 亚洲欧美激情精品一区二区| 99国产精品久久久久老师| 看片网站欧美日韩| 国产欧美精品一区二区色综合 | 国内欧美视频一区二区| 亚洲素人在线| 99国产精品久久久久久久| 欧美专区第一页| 免费在线观看一区二区| 国内外成人在线| 久久久水蜜桃| 久久综合久久综合久久综合| 国产伦精品一区二区三区高清版| 一区二区三区产品免费精品久久75| 亚洲日本视频| 国产精品日韩欧美一区二区三区| 亚洲一区三区在线观看| 久久国产成人| 亚洲欧洲日产国码二区| 欧美激情aⅴ一区二区三区|