monthshow.c

来自「minigui PDA系统 可实现手机功能」· C语言 代码 · 共 334 行

C
334
字号
#include <stdio.h> 
#include <string.h>

#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>

#include "monthcal.h"

#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_TITLE		824
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_TEXT		825
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TITLE		826
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TEXT		827
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_YEAR		828
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_MONTH		829
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_DATA		830
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_HOUR		831
#define IDC_TOOLS_MEMOIRE_SHOW_STATIC_MINUTE	832
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_YEAR		833
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MONTH		834
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_DATA		835
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_HOUR		836
#define IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MINUTE	837
#define IDC_TOOLS_MEMOIRE_SHOW_BUTTON_REWORK	838
#define IDC_TOOLS_MEMOIRE_SHOW_BUTTON_QUIT		839
#define MSG_MEMOIRE_ADD				1106
//#define MEMOIREDAT   "data/monthcalwork.txt"

int place;
HWND fWnd;
int size;
FILE *fp;

static int Memoire_Show(HWND hWnd)
{
	if((fp=fopen(MEMOIREDAT,"r"))==NULL)
	{
		MessageBox(hWnd,"the file open failed","",MB_OK | MB_ICONINFORMATION);
 		return;
	}	

	fread(item,sizeof(struct memoire),1000,fp);
	
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TITLE),item[place].title);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TEXT),item[place].text);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_YEAR),item[place].year);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MONTH),item[place].month);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_DATA),item[place].data);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_HOUR),item[place].hour);
	SetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MINUTE),item[place].minute);
		
	fclose(fp);
}

static int Memoire_Rework(HWND hWnd)
{
	if((fp=fopen(MEMOIREDAT,"r"))==NULL)
	{
		MessageBox(hWnd,"the file open failed","",MB_OK | MB_ICONINFORMATION);
 		return;
	}
	
	size = fread(item,sizeof(struct memoire),1000,fp);
	fclose(fp);
	
	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TITLE),item[place].title,sizeof(item[place].title));
 	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TEXT),item[place].text,sizeof(item[place].text)); 
	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_YEAR),item[place].year,sizeof(item[place].year));
 	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MONTH),item[place].month,sizeof(item[place].month)); 
	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_DATA),item[place].data,sizeof(item[place].data));
 	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_HOUR),item[place].hour,sizeof(item[place].hour)); 
	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MINUTE),item[place].minute,sizeof(item[place].minute));
	
	if((strlen(item[place].title)>20) || (strlen(item[place].title)== 0))
	{
		MessageBox(hWnd,"请输入正确的标题","",MB_OK | MB_ICONINFORMATION);
		return;
	}	

	if(strlen(item[place].title)>200)
	{
		MessageBox(hWnd,"内容超出范围","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((atoi(item[place].year)>9999) || (atoi(item[place].year)<=0))
	{
		MessageBox(hWnd,"请输入正确的年份","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((atoi(item[place].month)>12) || (atoi(item[place].month)<=0))
	{
		MessageBox(hWnd,"请输入正确的月份","",MB_OK | MB_ICONINFORMATION);
		return;
	}
	
	if((atoi(item[place].data)>31) || (atoi(item[place].data)<=0))
	{
		MessageBox(hWnd,"请输入正确的日期","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((atoi(item[place].hour)>24) || (atoi(item[place].hour)< 0))
	{
		MessageBox(hWnd,"请输入正确的小时","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((atoi(item[place].minute)>60) || (atoi(item[place].minute)< 0))
	{
		MessageBox(hWnd,"请输入正确的分钟","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((fp=fopen(MEMOIREDAT,"w"))==NULL)
	{
		MessageBox(hWnd,"the file open failed","",MB_OK | MB_ICONINFORMATION);
 		return;
	}	

	fwrite(item,sizeof(struct memoire),size,fp);	
	fclose(fp);

	SendNotifyMessage(fWnd,MSG_MEMOIRE_ADD,0,0L);
}

static int MemoireShowProc(HWND hMemoireshow, int message, WPARAM wParam, LPARAM lParam)
{
    	switch (message) 
    	{
	    	case MSG_CREATE:
		{
				CreateWindow (CTRL_STATIC,
					"标题:",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_TITLE,
					10, 10, 40, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_STATIC,
					"内容:",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_TEXT,
					10, 40, 40, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TITLE,
					50, 10, 150, 20,
					hMemoireshow,
					0);
	
				CreateWindow (CTRL_MLEDIT,
					"",
					WS_VISIBLE | ES_AUTOWRAP| WS_VSCROLL,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_TEXT,
					50, 40, 150, 80,
					hMemoireshow,
					0);
						
				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_YEAR,
					50, 130, 40, 20,
					hMemoireshow,
					0);
				
				CreateWindow (CTRL_STATIC,
					"年",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_YEAR,
					90, 130, 30, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MONTH,
					140, 130, 30, 20,
					hMemoireshow,
					0);
				
				CreateWindow (CTRL_STATIC,
					"月",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_MONTH,
					180, 130, 30, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_DATA,
					220, 130, 30, 20,
					hMemoireshow,
					0);
				
				CreateWindow (CTRL_STATIC,
					"日",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_DATA,
					260, 130, 30, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_HOUR,
					50, 160, 30, 20,
					hMemoireshow,
					0);
				
				CreateWindow (CTRL_STATIC,
					"时",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_HOUR,
					90, 160, 30, 20,
					hMemoireshow,
					0);

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_MEMOIRE_SHOW_SLEDIT_MINUTE,
					140, 160, 30, 20,
					hMemoireshow,
					0);
				
				CreateWindow (CTRL_STATIC,
					"分",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_MEMOIRE_SHOW_STATIC_MINUTE,
					180, 160, 30, 20,
					hMemoireshow,
					0);
			
				CreateWindow (CTRL_BUTTON,
					"修改",
					WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,
					IDC_TOOLS_MEMOIRE_SHOW_BUTTON_REWORK,
					240, 20, 60, 25,
					hMemoireshow,
					0);	
	
				CreateWindow (CTRL_BUTTON,
					"返回",
					WS_TABSTOP | WS_VISIBLE | BS_DEFPUSHBUTTON,
					IDC_TOOLS_MEMOIRE_SHOW_BUTTON_QUIT,
					240, 50, 60, 25,
					hMemoireshow,
					0);	

				Memoire_Show(hMemoireshow);	
		}
		break;
	
		case MSG_COMMAND:
		{
			switch(wParam)
			{
				case IDC_TOOLS_MEMOIRE_SHOW_BUTTON_REWORK:
					Memoire_Rework(hMemoireshow);	
					DestroyMainWindow (hMemoireshow);
       	 			PostQuitMessage (hMemoireshow);
					break;
	
				case IDC_TOOLS_MEMOIRE_SHOW_BUTTON_QUIT:
					DestroyMainWindow (hMemoireshow);
       	 			PostQuitMessage (hMemoireshow);
 					break;

			}
		}
		break;		
	
    		case MSG_CLOSE:
		{	
       	 		DestroyMainWindow (hMemoireshow);
       	 		PostQuitMessage (hMemoireshow);
        			return 0;
		}
    	}
    	return DefaultMainWinProc(hMemoireshow, message, wParam, lParam);
}


int MonthShow(HWND hMemoire,int index)
{
    	MSG Msg;
    	MAINWINCREATE CreateInfo;
	HWND hMemoireshow;
	
	fWnd = hMemoire;
	place = index;

    	CreateInfo.dwStyle = WS_CAPTION | WS_BORDER | WS_VISIBLE;
    	CreateInfo.dwExStyle = WS_EX_NONE;
    	CreateInfo.spCaption = "查看备忘录";
    	CreateInfo.hMenu = 0;
    	CreateInfo.hCursor = GetSystemCursor(IDC_ARROW);
    	CreateInfo.hIcon = 0;
    	CreateInfo.MainWindowProc = MemoireShowProc;
    	CreateInfo.lx = 0; 
    	CreateInfo.ty = 0;
    	CreateInfo.rx = 320;
    	CreateInfo.by = 216;
    	CreateInfo.iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);
    	CreateInfo.dwAddData = 0;
    	CreateInfo.hHosting = hMemoire;   
    hMemoireshow=CreateMainWindow(&CreateInfo); 
    ShowWindow(hMemoireshow,SW_SHOWNORMAL);
    while(GetMessage(&Msg,hMemoireshow)) 
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
    MainWindowThreadCleanup(hMemoireshow);
    return 0;    
}



⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?