⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 notepad.c

📁 minigui PDA系统 可实现手机功能
💻 C
字号:
#include <stdio.h>
#include <minigui/common.h>
#include <minigui/minigui.h>
#include <minigui/gdi.h>
#include <minigui/window.h>
#include <minigui/control.h>
#include <string.h>
#include <pthread.h>

#include "noteadd.c"
#include "notepadshow.c"
#include "notepad.h"
#include "../../mybuttonreg.h"

#define IDC_TOOLS_NOTEPAD_NAME                         0x32001
#define IDC_TOOLS_NOTEPAD_TIME			 									 0x32002
#define IDC_TOOLS_NOTEPAD_LISTBOX_TITLE		708
#define IDC_TOOLS_NOTEPAD_LISTBOX_TIME		709
#define IDC_TOOLS_NOTEPAD_BUTTON_SHOW			710
#define IDC_TOOLS_NOTEPAD_BUTTON_ADD			711
#define IDC_TOOLS_NOTEPAD_BUTTON_DEL			712
#define IDC_TOOLS_NOTEPAD_BUTTON_CLOSE		713
#define MSG_NOTEPAD_ADD				1114

static BITMAP show_pushed;
static BITMAP show_unpushed;
static BITMAP show_mousemove;

static BITMAP add_pushed;
static BITMAP add_unpushed;
static BITMAP add_mousemove;

static BITMAP del_pushed;
static BITMAP del_unpushed;
static BITMAP del_mousemove;

static BITMAP close_pushed;
static BITMAP close_unpushed;
static BITMAP close_mousemove;

static BITMAP jpg_bkgnd_NP;

HWND hNote;
HWND 	hCtrl_show;
HWND 	hCtrl_add;
HWND 	hCtrl_del;
HWND     hCtrl_close;

static void emLoadBitmap()
{
	LoadBitmap (HDC_SCREEN, &show_pushed, "image/button/tool_show_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &show_unpushed, "image/button/tool_show_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &show_mousemove, "image/button/tool_show_mousemove.jpg");	
	   
	LoadBitmap (HDC_SCREEN, &add_pushed, "image/button/tool_add_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &add_unpushed, "image/button/tool_add_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &add_mousemove, "image/button/tool_add_mousemove.jpg");
	   
	LoadBitmap (HDC_SCREEN, &del_pushed, "image/button/tool_del_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &del_unpushed, "image/button/tool_del_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &del_mousemove, "image/button/tool_del_mousemove.jpg");

	LoadBitmap (HDC_SCREEN, &close_pushed, "image/button/tool_close_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &close_unpushed, "image/button/tool_close_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &close_mousemove, "image/button/tool_close_mousemove.jpg");	
}
static void emUnLoadBitmap()
{
	 UnloadBitmap (&show_pushed);
        UnloadBitmap (&show_unpushed);
        UnloadBitmap (&show_mousemove);
		
	 UnloadBitmap (&add_pushed);
        UnloadBitmap (&add_unpushed);
        UnloadBitmap (&add_mousemove);
		
	 UnloadBitmap (&del_pushed);
        UnloadBitmap (&del_unpushed);
        UnloadBitmap (&del_mousemove);

	 UnloadBitmap (&close_pushed);
        UnloadBitmap (&close_unpushed);
        UnloadBitmap (&close_mousemove);
}

static void Note_notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{		
	if ( hwnd == hCtrl_show&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&show_pushed);
	}
	if ( hwnd == hCtrl_show &&nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_BUTTON_SHOW)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&show_unpushed);
		SendNotifyMessage(hNote,IDC_TOOLS_NOTEPAD_BUTTON_SHOW,0,0);
	}
	if( hwnd == hCtrl_show && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&show_mousemove);
	}
	//-----------------------------------------------------------
	if ( hwnd == hCtrl_add&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&add_pushed);
	}
	if ( hwnd == hCtrl_add && nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_BUTTON_ADD)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&add_unpushed);
		SendNotifyMessage(hNote,IDC_TOOLS_NOTEPAD_BUTTON_ADD,0,0);
	}
	if( hwnd == hCtrl_add && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&add_mousemove );
	}
//-----------------------------------------------------------
	if ( hwnd == hCtrl_del&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&del_pushed);
	}
	if ( hwnd == hCtrl_del && nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_BUTTON_DEL)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&del_unpushed);
		SendNotifyMessage(hNote,IDC_TOOLS_NOTEPAD_BUTTON_DEL,0,0);
	}
	if( hwnd == hCtrl_del && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&del_mousemove );
	}
//-----------------------------------------------------------------------	
	if ( hwnd == hCtrl_close&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&close_pushed);
	}
	if ( hwnd == hCtrl_close&&  nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_BUTTON_CLOSE)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&close_unpushed);
		SendNotifyMessage(hNote,MSG_CLOSE,0,0);
	}
	if( hwnd == hCtrl_close && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&close_mousemove );
	}
//---------------------------------------------------------------------------
	InvalidateRect (hwnd, NULL, TRUE);
}
//#define NOTEPADDAT	"notepad.dat"

int notesize = 0;
FILE *fp;


static void fill_box(HWND hWnd)
{
	int i=0;
	int j=0;
	struct tm* ptime;
	char buff[30];

	if((fp=fopen(NOTEPADDAT,"r"))==NULL)
	{
		MessageBox(hWnd,"the file open failed","",MB_OK | MB_ICONINFORMATION);
 		return;
	}	
	
	notesize = fread(notepad,sizeof(struct NOTEPAD),10,fp);
	
	for(i = 0;i < notesize;i++)
	{  	
		SendMessage(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_ADDSTRING,j,(LPARAM)notepad[i].topic);
		ptime=localtime(&notepad[i].time);
		sprintf(buff,"%d/%d/%d   %d:%d:%d",ptime->tm_year+1900,ptime->tm_mon+1,ptime->tm_mday,ptime->tm_hour,ptime->tm_min,ptime->tm_sec);
   		SendMessage(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_LISTBOX_TIME),LB_ADDSTRING,j++,(LPARAM)buff);		
	}
	fclose(fp);
}

static void List_And(HWND hwnd,int id ,int nc, DWORD add_data)
{
       int index;
        
	index=SendMessage(hwnd,LB_GETCURSEL,0,0);
	SendMessage(GetDlgItem(GetParent(hwnd),IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_SETCURSEL,index,0);
	SendMessage(GetDlgItem(GetParent(hwnd),IDC_TOOLS_NOTEPAD_LISTBOX_TIME),LB_SETCURSEL,index,0);
}

static void NotePadDel(HWND hWnd)
{	
  	int index;
	int i=0;
	int save;
	char title[20];
	char text[200];

	save = MessageBox(hWnd,"是否删除?","提示",MB_OKCANCEL);
			
	if(save == IDOK)
	{
		index = SendMessage (GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_GETCURSEL,0,0);
		SendMessage(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_DELETESTRING,index ,0);
		SendMessage(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_LISTBOX_TIME),LB_DELETESTRING,index ,0);	
	
		

		for(i= index ;i < notesize;i++)
		{
			strcpy(notepad[i].topic, notepad[i+1].topic);		
			strcpy(notepad[i].content,notepad[i+1].content);
			notepad[i].time =  notepad[i+1].time;
		}

		if((fp=fopen(NOTEPADDAT,"w"))==NULL)
		{
			MessageBox(hWnd,"the file open failed","",MB_OK | MB_ICONINFORMATION);
 			return;
		}	
		fwrite(notepad,sizeof(struct NOTEPAD),notesize - 1,fp);
		fclose(fp); 
	}
}

static int NotePadProc(HWND hNote, int message, WPARAM wParam, LPARAM lParam)
{
    int index;
	    HDC hdc = (HDC)wParam;
	    const RECT* clip = (const RECT*) lParam;
	    BOOL fGetDC = FALSE;
	    RECT rcTemp;
        switch (message) 
        {
            case MSG_CREATE:
        {
       // emLoadBitmap();
            CreateWindow (CTRL_STATIC,
	    	"标题:",
	    	WS_VISIBLE | SS_LEFT,
	    	IDC_TOOLS_NOTEPAD_NAME,
	    	20, 10, 45, 16,
	    	hNote,
	    	0);
	   CreateWindow (CTRL_STATIC,
		"时间:",
		WS_VISIBLE | SS_LEFT,
		IDC_TOOLS_NOTEPAD_TIME,
		120, 10, 45, 16,
		hNote,
		0);        
            CreateWindow (CTRL_LISTBOX,
                    "",
                    LBS_NOTIFY  | WS_VSCROLL | WS_BORDER |WS_VISIBLE,
                    IDC_TOOLS_NOTEPAD_LISTBOX_TITLE,
                    20, 30, 100, 130,
                    hNote,
                    0);
            
            CreateWindow (CTRL_LISTBOX,
                    "",
                    LBS_NOTIFY  | WS_VSCROLL | WS_BORDER |WS_VISIBLE,
                    IDC_TOOLS_NOTEPAD_LISTBOX_TIME,
                    120, 30, 110, 130,
                    hNote,
                    0);
          /*  hCtrl_show= CreateWindowEx(CTRL_MYBUTTON, 
								 "查看",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
					                    IDC_TOOLS_NOTEPAD_BUTTON_SHOW,
					                    240, 30, 60, 25,
					                    hNote,
								(DWORD)&show_unpushed);*/
		hCtrl_show =CreateWindow ("button",
                          "查看",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                          IDC_TOOLS_NOTEPAD_BUTTON_SHOW,
					                    240, 30, 60, 25,
					                    hNote, 0);

           /*     hCtrl_add= CreateWindowEx(CTRL_MYBUTTON, 
								  "新建",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
					                    IDC_TOOLS_NOTEPAD_BUTTON_ADD,
					                    240, 65, 60, 25,
					                    hNote,
								(DWORD)&add_unpushed);    */
			hCtrl_add =CreateWindow ("button",
                          "新建",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                         IDC_TOOLS_NOTEPAD_BUTTON_ADD,
					                    240, 65, 60, 25,
					                    hNote,0);

              /* hCtrl_del= CreateWindowEx(CTRL_MYBUTTON, 
								   "删除",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
					                    IDC_TOOLS_NOTEPAD_BUTTON_DEL,
					                    240, 100, 60, 25,
					                    hNote,
								(DWORD)&del_unpushed);     */
		hCtrl_del =CreateWindow ("button",
                          "删除",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                         IDC_TOOLS_NOTEPAD_BUTTON_DEL,
					                    240, 100, 60, 25,
					                    hNote,0);

         /*      hCtrl_close= CreateWindowEx(CTRL_MYBUTTON, 
								  "关闭",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
					                    IDC_TOOLS_NOTEPAD_BUTTON_CLOSE,
					                    240, 135, 60, 25,
					                    hNote,
								(DWORD)&close_unpushed); */
		hCtrl_close =CreateWindow ("button",
                          "关闭",
                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
                        IDC_TOOLS_NOTEPAD_BUTTON_CLOSE,
					                    240, 135, 60, 25,
					                    hNote,0);

		SetNotificationCallback ( hCtrl_show, Note_notify_proc );
		SetNotificationCallback ( hCtrl_add, Note_notify_proc );
		SetNotificationCallback ( hCtrl_del,Note_notify_proc );
		SetNotificationCallback ( hCtrl_close, Note_notify_proc );
             fill_box(hNote);  
	     SetNotificationCallback(GetDlgItem(hNote,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),List_And);      
       	     SetNotificationCallback(GetDlgItem(hNote,IDC_TOOLS_NOTEPAD_LISTBOX_TIME),List_And); 
			}
        break;
			case MSG_MOUSEMOVE:
				//SetWindowAdditionalData( hCtrl_add, (DWORD)&add_unpushed );
				InvalidateRect (hCtrl_add, NULL, TRUE);
				//SetWindowAdditionalData( hCtrl_show, (DWORD)&show_unpushed );
				InvalidateRect (hCtrl_show, NULL, TRUE);
				//SetWindowAdditionalData( hCtrl_del, (DWORD)&del_unpushed );
				InvalidateRect (hCtrl_del, NULL, TRUE);
				//SetWindowAdditionalData( hCtrl_close, (DWORD)&close_unpushed );
				InvalidateRect (hCtrl_close, NULL, TRUE);
				break;
		case MSG_ERASEBKGND:
	    		if (hdc == 0) {
				hdc = GetClientDC (hNote);
				fGetDC = TRUE;
	 		   }       
		    
	    		if (clip) {
				rcTemp = *clip;
				ScreenToClient (hNote, &rcTemp.left, &rcTemp.top);
				ScreenToClient (hNote, &rcTemp.right, &rcTemp.bottom);
				IncludeClipRect (hdc, &rcTemp);
	    		}

//	  		  FillBoxWithBitmap (hdc, rcTemp.left, rcTemp.top, 0, 0, &jpg_bkgnd_EM);
			FillBoxWithBitmap (hdc, 0, 0, 320, 192, &jpg_bkgnd_NP);
	    		if (fGetDC)
				ReleaseDC (hdc);
	 		   return 0;
                		case IDC_TOOLS_NOTEPAD_BUTTON_ADD:
                    	NotePadAdd(hNote);
            		break;
    			
               		case IDC_TOOLS_NOTEPAD_BUTTON_SHOW:
                    	index = SendMessage(GetDlgItem(hNote,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_GETCURSEL,0,0);
                    	NotepadShow(hNote,index);
            		break;
							
                		case IDC_TOOLS_NOTEPAD_BUTTON_DEL:
                    	NotePadDel(hNote);
            		break;
            		

         case MSG_NOTEPAD_ADD:
	{
		SendMessage(GetDlgItem(hNote,IDC_TOOLS_NOTEPAD_LISTBOX_TITLE),LB_RESETCONTENT,0,0);
		SendMessage(GetDlgItem(hNote,IDC_TOOLS_NOTEPAD_LISTBOX_TIME),LB_RESETCONTENT,0,0);
		fill_box(hNote);
	}
	break; 
         case MSG_CLOSE:
         {		
		// emUnLoadBitmap();
		 DestroyAllControls (hNote);
                DestroyMainWindow (hNote);
                PostQuitMessage (hNote);
                return 0;
    	  }
   }
   return DefaultMainWinProc(hNote, message, wParam, lParam);
}
int NotePad(HWND hWnd)
{
	
		MSG Msg;
        MAINWINCREATE CreateInfo;
        RegisterMyButtonControl ();
		
        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 =NotePadProc ;
        CreateInfo.lx = 0; 
        CreateInfo.ty = 0;
        CreateInfo.rx = 320;
        CreateInfo.by = 216;
        CreateInfo.iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);
        CreateInfo.dwAddData=0;
        CreateInfo.hHosting=hWnd;  

	LoadBitmap (HDC_SCREEN, &jpg_bkgnd_NP, "./image/background/bkgnd29.jpg"); 
        hNote=CreateMainWindow(&CreateInfo); 
        ShowWindow(hNote,SW_SHOWNORMAL);
        while(GetMessage(&Msg,hNote)) 
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
         MainWindowThreadCleanup(hNote);
	UnloadBitmap (&jpg_bkgnd_NP);
	 UnregisterMyButtonControl ();
         return 0;    
}

⌨️ 快捷键说明

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