智能终端定制开发 ad
MTK/瑞芯微/高通-Android,智能模块/智能终端方案商

深度定制各类智能终端和智能硬件产品,提供硬件选型咨询、参考设计、元器件推荐、驱动开发、行业模块集成、操作系统定制与算法集成等软硬件定制服务。
contact.aspx

Android核心板产品覆盖2G、3G、4G通讯,双核、四核、八核CPU,可选的平台有MTK6580、MTK6737、MTK6750等,Android版本有5.1 6.0 7.0等。
contact.aspx

可广泛应用于低端智能POS、安防监控、车载设备、低端智能机器人、智能家居、智能硬件、工业智能手持设备、低端智能对讲设备、低端警务或执法设备、智能穿戴、贩卖机、物流柜、智能门禁系统等行业和设备。
contact.aspx

可提供以太网转串口透传,WIFI转串口透传,蓝牙转串口透传,CAN总线模拟量控制输出模块等。
contact.aspx

带3G或4G通讯功能,运行android系统,有多个串口,可以外挂各种模块:条码扫描、RFID、指纹识别、身份证识别、磁条卡、ID卡、GPS/北斗模块等。
contact.aspx

具有4G通讯功能,多个RS232或RS485接口,以太网接口,USB接口,CAN接口,多个AD输入。基于Android系统智能平台,方便APP应用开发。器件严格选型,运行稳定,质量可靠。
contact.aspx

VC—主框架窗口绘制背景
[VC 编程] 2008-04-08
 用VC进行项目开发,特别是简单的MIS系统开发中,通常在用户没有进行操作之前显示的是主框架的窗口(用户点击操作菜单项再弹出处理窗口)。因此给主框架窗口提供一个背景图片就显得很有必要(例如一用户满意的LOGO等)。但是对于主框架的背景的绘制不能简单地用ClassWizard重载OnEraseBkgnd(CDC pDC)函数的方法实现。

       多文档窗口应用程序中的主框架窗口的背景区是一个MDIClient类的窗口,因此改变背 景与这个MDIClient类的窗口有关。MDIClient类的窗口的句柄是m_hWndMDIClient(CMDIFrameWnd),可以通过以下步骤实现:

       Step 1:在资源中添加一个Bitmap资源,资源标志符为IDB_BKGOUND

       Step 2:添加一个MDIClient类:Insert——>New Class,选择MFC Class,基类选择“generic CWnd”,类名为CClientWnd

       Step 3:为CClientWnd添加OnEraseBkgnd(CDC pDC)OnSize(UINT nType, int cx, int cy)函数的重载(Class Wizard),并添加虚函数WNDPROC* CClientWnd::GetSuperWndProcAddr()

      

BOOL CClientWnd::OnEraseBkgnd(CDC* pDC)

{

       // TODO: Add your message handler code here and/or call default

       CRect rectbk;       // 客户区的大小

       CDC dcMen;       //内存设备描述表

       CBitmap bmbk;     // 位图对象

       bmbk.LoadBitmap(IDB_BKGOUND); // 从资源加载位图 bitmap

      

       // 得到位图bitmap的大小

       BITMAP stBitmap;

       bmbk.GetObject(sizeof(BITMAP),&stBitmap);

       CSize bmsize(stBitmap.bmWidth,stBitmap.bmHeight);

      

       dcMen.CreateCompatibleDC(pDC);

 

       // 选入新的位图对象并保存旧的位图对象

       CBitmap *pold=dcMen.SelectObject(&bmbk);

       GetClientRect(&rectbk);

 

       // 从内存向屏幕复制位图对象

       pDC->StretchBlt(rectbk.left,rectbk.top,rectbk.Width(),rectbk.Height(),&dcMen,0,0,bmsize.cx,bmsize.cy,SRCCOPY);

       dcMen.SelectObject(pold);

      

       // 恢复旧的位图对象

       dcMen.DeleteDC();

       // 释放内存设备描述表

      

       //return CWnd::OnEraseBkgnd(pDC);

       return TRUE;

}

 

void CClientWnd::OnSize(UINT nType, int cx, int cy)

{

    CWnd::OnSize(nType, cx, cy);

   

    // TODO: Add your message handler code here

    Invalidate();   //大小改变后重画

    }

 

       ClientWnd.h中添加:

virtual WNDPROC* GetSuperWndProcAddr();

       ClientWnd.cpp中添加:

NDPROC* CClientWnd::GetSuperWndProcAddr()

{

    static WNDPROC NEAR pfnSuper = NULL;

   

    return &pfnSuper; // 返回函数指针

}

 

Step 4:为主框架添加背景:

MainFrm.h中添加:CClientWnd m_wndClient; (添加#include “ClientWnd.h”头文件)

CMainFrame类的OnCreate()事项中添加:

int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)

{

    if (CMDIFrameWnd::OnCreate(lpCreateStruct) == -1)

           return -1;

   

    if(!m_wndClient.SubclassWindow(m_hWndMDIClient))

    {

           TRACE("Fail to subclass MDI client window\n");

           return -1;

    }

//////省略

 

}

 

[VC 编程添加评论 | 评论/阅读(0/616)
评论
昵称
主页
内容
递交


Copyright @ 我的开发笔记     2008 - 2017         粤ICP备19155526号-1