diff --git a/src/app/Demo/BiaoGe/TableControl.c b/src/app/Module/TableControl.c similarity index 100% rename from src/app/Demo/BiaoGe/TableControl.c rename to src/app/Module/TableControl.c diff --git a/src/app/Demo/BiaoGe/TableControl.h b/src/app/Module/TableControl.h similarity index 100% rename from src/app/Demo/BiaoGe/TableControl.h rename to src/app/Module/TableControl.h diff --git a/src/app/Demo/TimeEdit/TimeEdit.c b/src/app/Module/TimeEdit.c similarity index 100% rename from src/app/Demo/TimeEdit/TimeEdit.c rename to src/app/Module/TimeEdit.c diff --git a/src/app/Demo/TimeEdit/TimeEdit.h b/src/app/Module/TimeEdit.h similarity index 100% rename from src/app/Demo/TimeEdit/TimeEdit.h rename to src/app/Module/TimeEdit.h diff --git a/src/app/Module/wjh_ClockControl.c b/src/app/Module/wjh_ClockControl.c new file mode 100644 index 0000000..1ae9e59 --- /dev/null +++ b/src/app/Module/wjh_ClockControl.c @@ -0,0 +1,185 @@ +//这段程序是一个时钟 +// +// +#include "stdint.h" +#include "stddef.h" +#include "stdio.h" +#include "gdd.h" +#include "gdd_button.h" +#include "wjh_window.h" +// 用于存放按钮hwnd +HWND timeclock[8]; +HWND clock_window = NULL; +//定义按钮名字 +u8 buttontime[8][20] = {"hour1", "hour2", "colon1", "minute1", "minute2", "colon2", "second1", "second2"}; +//图片名称,不可更改 +u8 timename[10][20] = {"zero", "one", "two", "three", "four", "five", "six", "seven", "eight", "nine"}; +//初始化时间 +u32 hour_t = 0; +u32 minute_t = 59; +u32 second_t = 50; + +u32 C_flag = 0; +struct WinTimer* c_timer; +enum { + C_Clock, + C_Timer, +}; +static bool_t main_window_paint(struct WindowMsg *pMsg) { + HWND hwnd = pMsg->hwnd; + if (hwnd == NULL) return false; + + HDC hdc = GDD_BeginPaint(hwnd); + + GDD_SetBackGroundColor(hdc, RGB(8,24,58)); + GDD_CleanClient(hdc); + + GDD_EndPaint(hwnd, hdc); // 结束绘制并刷新 + + return true; +} +static bool_t button_paint(struct WindowMsg *pMsg) { + u8* data; + HWND hwnd; + HDC hdc; + if(pMsg==NULL) + return false; + hwnd = pMsg -> hwnd; + if(hwnd ==NULL) return false; + hdc = GDD_BeginPaint(hwnd); +// struct RopGroup ropgroup = GDD_GetRopCode(hdc); +// ropgroup.HyalineEn = 1; +// GDD_SetRopCode(hwnd, ropgroup); +// GDD_SetWindowHyalineColor(hwnd, RGB(8,24,58)); +// Set the background image for the window + wjh_setBackBmp(hwnd, wjh_Search_ClockBMP("colon")); + + GDD_EndPaint(hwnd, hdc); // 结束绘制并刷新 + + return true; + } + +static bool_t timer_paint(struct WindowMsg *pMsg) { + u8* data; + HWND hwnd; + HDC hdc; + if(pMsg==NULL) + return false; + hwnd = pMsg -> hwnd; + if(hwnd ==NULL) return false; + hdc = GDD_BeginPaint(hwnd); + //根据时间调整图片 + wjh_setBackBmp(timeclock[0], wjh_Search_ClockBMP(timename[hour_t/10])); + wjh_setBackBmp(timeclock[1], wjh_Search_ClockBMP(timename[hour_t%10])); + wjh_setBackBmp(timeclock[3], wjh_Search_ClockBMP(timename[minute_t/10])); + wjh_setBackBmp(timeclock[4], wjh_Search_ClockBMP(timename[minute_t%10])); + wjh_setBackBmp(timeclock[6], wjh_Search_ClockBMP(timename[second_t/10])); + wjh_setBackBmp(timeclock[7], wjh_Search_ClockBMP(timename[second_t%10])); + if(C_flag == C_Clock){ + second_t = second_t + 1; + if(second_t==60){ + second_t = 0; + minute_t = minute_t + 1; + } + if(minute_t==60){ + minute_t = 0; + hour_t = hour_t + 1; + } + if(hour_t==24){ + hour_t = 0; + } + }else if(C_flag == C_Timer){ + if(second_t==0&&minute_t == 0&&hour_t==0){ + GDD_StopTimer(c_timer); + } + if(second_t==0&&!(minute_t == 0&&hour_t == 0)){ + second_t = 60; + if(minute_t == 0 && hour_t != 0){ + minute_t = 60; + hour_t -= 1; + } + minute_t -= 1; + + } + second_t -= 1; + + } + + + GDD_EndPaint(hwnd, hdc); // 结束绘制并刷新 + + return true; +} +void create_TimerControl(){ + if(clock_window!=NULL){ + hour_t = 1; + minute_t = 1; + second_t = 0; + C_flag = C_Timer; + GDD_PostMessage(clock_window, MSG_TIMER, 0, NULL); + } +} + +void start_timer(){ + if(clock_window!=NULL) + GDD_StartTimer(c_timer); + +} +void pause_timer(){ + if(clock_window!=NULL) + GDD_StopTimer(c_timer); + +} +void Del_ClockControl(){ + if(clock_window!=NULL){ + GDD_DestroyWindow(clock_window); + clock_window = NULL; + u32 hour_t = 0; + u32 minute_t = 59; + u32 second_t = 50; + } +} +void correct_ClockControl(){ + hour_t = 0; + minute_t = 59; + second_t = 50; + GDD_StartTimer(c_timer); + +} + +// Main function +HWND wjh_GetClockControl(HWND hwnd, u32 x, u32 y) +{ + // Enable the screen backlight +// Lcd_BackLight_OnOff(1); + // Create the navigation bar window +// if(clock_window == NULL){ + C_flag = C_Clock; + clock_window = wjh_createWindow( + "clock_window", x, y, 340, 70, CN_WINBUF_PARENT, 0, CN_SYS_PF_DISPLAY, + RGB(1, 1, 1), hwnd, main_window_paint, NULL + ); + + //创建按钮 + for(int i = 0; i < 8; i++){ + timeclock[i] = wjh_createButton(buttontime[i], BS_NORMAL | WS_UNFILL, 12+i*40, 5, 40, 60, clock_window, button_paint, NULL); +// HDC hdc = GDD_BeginPaint(timeclock[i]); +// struct RopGroup ropgroup = GDD_GetRopCode(hdc); +// ropgroup.HyalineEn = 1; +// GDD_SetRopCode(timeclock[i], ropgroup); +// GDD_SetWindowHyalineColor(hwnd, RGB(8,24,58)); +// GDD_EndPaint(timeclock[i], hdc); + } + //给main窗口创建一个计时器的timer事件 + wjh_setTimer(clock_window,timer_paint); + //创建计时器 + c_timer = GDD_CreateTimer(clock_window,0,1000); + //计时器开始执行 + GDD_StartTimer(c_timer); + return clock_window; +// }else{ +// correct_ClockControl(); +// } +// return NULL; +} + diff --git a/src/app/Module/wjh_ClockControl.h b/src/app/Module/wjh_ClockControl.h new file mode 100644 index 0000000..6b5d083 --- /dev/null +++ b/src/app/Module/wjh_ClockControl.h @@ -0,0 +1,23 @@ +/* + * wjh_ClockControl.h + * + * Created on: 2024年8月6日 + * Author: LENOVO + */ + +#ifndef APP_MODULE_WJH_CLOCKCONTROL_H_ +#define APP_MODULE_WJH_CLOCKCONTROL_H_ +#include "gdd.h" + +HWND wjh_GetClockControl(HWND hwnd, u32 x, u32 y); +void Del_ClockControl(); +void correct_ClockControl(); +void pause_timer(); +void start_timer(); +void create_TimerControl(); + + + + + +#endif /* APP_MODULE_WJH_CLOCKCONTROL_H_ */