当前位置: 首页 > news >正文

网站建设服务器租用系统开发软件有哪些

网站建设服务器租用,系统开发软件有哪些,wordpress 页面调新闻,手机端网站开发素材前言#xff1a; 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展【类似GUIguider】 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码#xff0c;并将其文件夹改名为lvgl lvgl: LVGL 是一个开源图形库#xff0c;提供您创建具有易于使用…前言 0. 在MFC中开发LVGL的优点是可以用多个Window界面做辅助扩展【类似GUIguider】 1.本文基于VC2022-MFC单文档框架移植lvgl8 2. gitee上下载lvgl8.3 源码并将其文件夹改名为lvgl lvgl: LVGL 是一个开源图形库提供您创建具有易于使用的图形元素、漂亮的视觉效果和低内存占用的嵌入式 GUI 所需的一切。 - Gitee.com 步骤 1.新建一个MFC应用程序命名为LVGL_MFC [可以自定义] 2.将下载的lvgl源码放到刚新建的LVGL_MFC工程目录下 3. 设置VS工程的属性取消C/C 预编译头 VC目录包含目录 添加$(MSBuildThisFileDirectory)lvgl;$(MSBuildThisFileDirectory)lvgl\src;$(IncludePath) 4.在解决方案资源管理器第一栏点击“显示所有文件”然后展开lvgl文件夹在src文件夹右击选择“包含在项目中”。 5.在lvgl目录下将lv_conf_template.h改名为lv_conf.h 6.编译MFC工程此时应该会出现一个空白的对话框。 7.在lvgl目录下新建文件夹my_porting,文件夹里新建lv_driver_mfc.cpp,并将examples文件夹下的lv_port_disp_template.c 和lv_port_indev_template.c 复制到my_porting目录中然后两个C文件分别改名为lv_port_disp.c和lv_port_indev.c 注意将这两个C文件里面开头的#if 0 改为 #if 1 ; 然后在my_porting后击选择“包含在项目中” 8.在lv_port_disp.c中修改如下 /********************** DEFINES*********************/ #ifndef MY_DISP_HOR_RES//#warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen width, default value 320 is used for now.#define MY_DISP_HOR_RES 400// Define your window size width #endif#ifndef MY_DISP_VER_RES//#warning Please define or replace the macro MY_DISP_HOR_RES with the actual screen height, default value 240 is used for now.#define MY_DISP_VER_RES 400// Define your window size height #endif#define LV_VER_RES_MAX 600//此函数修改如下 static void disp_flush(lv_disp_drv_t * disp_drv, const lv_area_t * area, lv_color_t * color_p) {extern void mfc_disp_flush_ex(lv_disp_drv_t* disp_drv, const lv_area_t* area, lv_color_t* color_p);if (disp_flush_enabled) {mfc_disp_flush_ex(disp_drv, area, color_p);}return; } 9.在lv_port_indev.c中修改如下 static void mouse_read(lv_indev_drv_t * indev_drv, lv_indev_data_t * data) {extern void mfc_mouse_read_ex(lv_indev_drv_t * indev_drv, lv_indev_data_t * data);mfc_mouse_read_ex(indev_drv, data);return; }void lv_port_indev_init(void) {static lv_indev_drv_t indev_drv;/*Register a mouse input device*/lv_indev_drv_init(indev_drv);indev_drv.type LV_INDEV_TYPE_POINTER;indev_drv.read_cb mouse_read;indev_mouse lv_indev_drv_register(indev_drv); return; } 10. lv_driver_mfc.cpp 内容如下 #include afxdialogex.h #includelvgl.h #include src/hal/lv_hal_disp.hHWND g_myMainWnd;#include io.h #include fcntl.h void RedirectIOToConsole() { #if 1 //enable1在MFC下仍能使用printf在cmd窗口看日志在初始化中调用即可// 分配控制台AllocConsole();// 重定向标准输入、输出和错误流FILE* fp;freopen_s(fp, CONOUT$, w, stdout); // 将 stdout 绑定到控制台freopen_s(fp, CONOUT$, w, stderr); // 将 stderr 绑定到控制台freopen_s(fp, CONIN$, r, stdin); // 将 stdin 绑定到控制台 #endif }extern C {void lv_init(void);void lv_port_disp_init(void);void lv_port_indev_init(void);void ui_init(void);void mfc_mouse_read_ex(lv_indev_drv_t* indev_drv, lv_indev_data_t* data);void mfc_disp_flush_ex(lv_disp_drv_t* disp_drv, const lv_area_t* area, lv_color_t* color_p);}void mfc_disp_flush_ex(lv_disp_drv_t* disp_drv, const lv_area_t* area, lv_color_t* color_p) {CWnd* pWnd CWnd::FromHandle(g_myMainWnd);CDC* pDC pWnd-GetDC(); // 获取设备上下文指针if (pDC) {// 定义位图信息BITMAPINFO bitmapInfo;memset(bitmapInfo, 0, sizeof(bitmapInfo));// 设置位图信息头bitmapInfo.bmiHeader.biSize sizeof(BITMAPINFOHEADER);bitmapInfo.bmiHeader.biWidth area-x2 - area-x1 1;bitmapInfo.bmiHeader.biHeight -(area-y2 - area-y1 1); // 使用负值以表示自上而下的位图bitmapInfo.bmiHeader.biPlanes 1;bitmapInfo.bmiHeader.biBitCount LV_COLOR_DEPTH; // 与LV_COLOR_DEPTH相符bitmapInfo.bmiHeader.biCompression BI_RGB; // 不压缩// 使用StretchDIBits将LVGL显存绘制到窗口,比单点SetPixel刷图效率高很多StretchDIBits(pDC-GetSafeHdc(),area-x1, area-y1,area-x2 - area-x1 1,area-y2 - area-y1 1,0, 0,area-x2 - area-x1 1,area-y2 - area-y1 1,color_p,bitmapInfo,DIB_RGB_COLORS,SRCCOPY);}// 通知LVGL刷新完成lv_disp_flush_ready(disp_drv); }void mfc_mouse_read_ex(lv_indev_drv_t* indev_drv, lv_indev_data_t* data) {POINT pt;GetCursorPos(pt); // 获取鼠标位置ScreenToClient(g_myMainWnd, pt); // 转换为窗口内坐标data-point.x pt.x;data-point.y pt.y;data-state (GetAsyncKeyState(VK_LBUTTON) 0x8000) ? LV_INDEV_STATE_PR : LV_INDEV_STATE_REL; }UINT Thread_Lvgl_UiTimer(LPVOID pParam) {while (1){lv_tick_inc(5);// 提供lvlg系统定时基准Sleep(5); // 模拟耗时任务}return 0; }UINT Thread_Lvgl_Flushing(LPVOID pParam) {RedirectIOToConsole();//启动日志printf打印窗口printf(Start Thread_Lvgl_Flushing.\n);int hor lv_disp_get_hor_res(lv_disp_get_default());int ver lv_disp_get_ver_res(lv_disp_get_default());printf(window h%d,v%d.\n, hor, ver);while (1){lv_timer_handler();Sleep(50); // 模拟耗时任务}return 0; // 返回值 }extern C {void my_event_cb(lv_event_t* ev){static int cnt 0;lv_obj_t* m_parent lv_scr_act();lv_obj_t* m_label lv_obj_get_child(m_parent, 0);lv_label_set_text_fmt(m_label, LVGL Cnt%d., cnt);printf(UI_Event_Code%d.Count%d.\n, ev-code,cnt);}void ui_init(){lv_obj_t* m_parent lv_scr_act();lv_obj_t* m_label lv_label_create(m_parent);lv_obj_t* m_btn lv_btn_create(m_parent);lv_obj_set_style_bg_opa(m_parent, 0xFF, 0);lv_obj_set_style_bg_color(m_parent, lv_color_hex(0xeeaabb), 0);lv_label_set_text(m_label, LVGL on MFC!);lv_obj_align(m_label, LV_ALIGN_CENTER, 0, 0);lv_obj_align(m_btn, LV_ALIGN_DEFAULT, 0, 50);lv_obj_add_event_cb(m_btn, my_event_cb, LV_EVENT_CLICKED, NULL);} }void lvgl_init() {AfxBeginThread(Thread_Lvgl_UiTimer, NULL);AfxBeginThread(Thread_Lvgl_Flushing, NULL);lv_init();lv_port_disp_init();lv_port_indev_init();ui_init();//do your demo ui layout code}11. 在主界面LVGL_MFCDlg.cpp的OnInitDialog()中添加初始化代码 // TODO: 在此添加额外的初始化代码extern HWND g_myMainWnd; g_myMainWnd m_hWnd;extern void lvgl_init(void);lvgl_init(); 12. 在lv_conf_internal.h 修改   #define LV_COLOR_DEPTH 32  【PC在16bit颜色下会有色差】 13.运行效果 后续 完整工程VS_Demo lvgl_mfc: 基于lvgl8.3源代码移植到MFCVC2022单对话框平台。
http://www.w-s-a.com/news/485450/

相关文章:

  • 做网站效果图是用ps还是ai泰安人才网最新招聘信息2022年
  • 免费建站网站一级大录像不卡在线看网页郑州网站关键
  • 做网站 然后百度推广哈尔滨建筑网
  • 章丘营销型网站建设网站测评必须做
  • 营销者网站怎么把网站黑了
  • 律师事务所手机网站校园网站设计
  • 网站案例展示分类网站响应速度优化
  • 风景网站的制作网站ip地址查询域名
  • 怎样看网站是谁做的马鞍山什么房产网站做的好
  • 西安推荐企业网站制作平台软装设计方案ppt
  • 网站静态页模板专业网站设计开发公司
  • 手机免费在线搭建网站短网址生成防红
  • 天津网站设计网站制作如何新建wordpress
  • 山东省建设备案网站审批国际新闻最新消息10条简短
  • 成都市建设网扬尘监控网站短域名转换
  • 怎么做手机网站潍坊建设银行网站
  • 做网站分什么软件品牌设计培训
  • 太原网站设计排名设计本装修效果图
  • 网站个人中心模板石家庄网站系统开发
  • 优秀的电子商务网站教育公司网站建设文案
  • 网站开发市场成本网站链接推广工具
  • 猪八戒做网站排名常州seo博客
  • wordpress 网站遭篡改如何优化公司的网站
  • 汉中公司做网站网站建设的风格设置
  • 网站建议怎么写怎么做网页连接
  • 站长工具seo综合查询下载安装软件平台搭建包括哪几个方面
  • 做网站怎么存放视频支付功能网站建设
  • 庆阳手机网站设计兰州网站的优化
  • 企业网站托管有必要吗项目管理资格证书
  • 检索类的网站建设个人博客网页模板图片