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

📄 noteadd.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 "notepad.h"
#include "../../mybuttonreg.h"

#define IDC_TOOLS_NOTEPAD_ADD_STATIC_TITLE	  714
#define IDC_TOOLS_NOTEPAD_ADD_STATIC_TEXT			715
#define IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TITLE		716
#define IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TEXT			717
#define IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT		718
#define IDC_TOOLS_NOTEPAD_ADD_BUTTON_QUIT			719
#define MSG_NOTEPAD_ADD				1114

//#define NOTEPADDAT	"data/notepad.dat" 

static BITMAP creat_pushed;
static BITMAP creat_unpushed;
static BITMAP creat_mousemove;

static BITMAP return_pushed;
static BITMAP return_unpushed;
static BITMAP return_mousemove;

static BITMAP jpg_bkgnd_NA;

HWND hNoteAdd;
HWND hCtrl_creat;
HWND hCtrl_return;

static void emNALoadBitmap()
{
	LoadBitmap (HDC_SCREEN, &creat_pushed, "image/button/tool_creat_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &creat_unpushed, "image/button/tool_creat_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &creat_mousemove, "image/button/tool_creat_mousemove.jpg");	
	   
	LoadBitmap (HDC_SCREEN, &return_pushed, "image/button/tool_return_pushed.jpg");
       LoadBitmap (HDC_SCREEN, &return_unpushed, "image/button/tool_return_unpushed.jpg");
       LoadBitmap (HDC_SCREEN, &return_mousemove, "image/button/tool_return_mousemove.jpg");
	   
}
static void emNAUnLoadBitmap()
{
	 UnloadBitmap (&creat_pushed);
        UnloadBitmap (&creat_unpushed);
        UnloadBitmap (&creat_mousemove);
		
	 UnloadBitmap (&return_pushed);
        UnloadBitmap (&return_unpushed);
        UnloadBitmap (&return_mousemove);
}

static void NoteAdd_notify_proc (HWND hwnd, int id, int nc, DWORD add_data)
{		
	if ( hwnd == hCtrl_creat&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&creat_pushed);
	}
	if ( hwnd == hCtrl_creat &&nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&creat_unpushed);
		SendNotifyMessage(hNoteAdd,IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT,0,0);
	}
	if( hwnd == hCtrl_creat && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&creat_mousemove);
	}
	//-----------------------------------------------------------
	if ( hwnd == hCtrl_return&& nc == MYBUTTON_PUSHED)
	{		
		//SetWindowAdditionalData(hwnd, (DWORD)&return_pushed);
	}
	if ( hwnd == hCtrl_return && nc == BN_CLICKED&&id==IDC_TOOLS_NOTEPAD_ADD_BUTTON_QUIT)
	{
		//SetWindowAdditionalData(hwnd, (DWORD)&return_unpushed);
		SendNotifyMessage(hNoteAdd,MSG_CLOSE,0,0);
	}
	if( hwnd == hCtrl_return && nc == MYBUTTON_MOUSEMOVE)
	{	
		//SetWindowAdditionalData(hwnd, (DWORD)&return_mousemove );
	}
//-----------------------------------------------------------
	InvalidateRect (hwnd, NULL, TRUE);
}
/////////////////////////////////////////////////
struct NOTEPAD litem;
HWND fWnd;
FILE *fp;

static int NotePad_Add(HWND hWnd)
{
	litem.time = time(NULL);

	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TITLE),litem.topic,sizeof(litem.topic));
 	GetWindowText(GetDlgItem(hWnd,IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TEXT),litem.content,sizeof(litem.content)); 
 	
	if((strlen(litem.topic)>20) || (strlen(litem.topic)== 0))
	{
		MessageBox(hWnd,"请输入正确的标题","",MB_OK | MB_ICONINFORMATION);
		return;
	}	

	if(strlen(litem.content)>200)
	{
		MessageBox(hWnd,"内容超出范围","",MB_OK | MB_ICONINFORMATION);
		return;
	}

	if((fp=fopen(NOTEPADDAT,"a+"))==NULL)
	{
		MessageBox(hWnd,"打开文件失败","",MB_OK | MB_ICONINFORMATION);
 		return;
	}
	
	fwrite(&litem,sizeof(struct NOTEPAD),1,fp);	
	fclose(fp);
	SendNotifyMessage(fWnd,MSG_NOTEPAD_ADD,0,0L);
}

static int NoteAddProc(HWND hNoteAdd, int message, WPARAM wParam, LPARAM lParam)
{
	    HDC hdc = (HDC)wParam;
	    const RECT* clip = (const RECT*) lParam;
	    BOOL fGetDC = FALSE;
	    RECT rcTemp;
    	switch (message) 
    	{
	    	case MSG_CREATE:
		{		//emNALoadBitmap();
				CreateWindow (CTRL_STATIC,
					"标题:",
					WS_VISIBLE | SS_CENTER,
					IDC_TOOLS_NOTEPAD_ADD_STATIC_TITLE,
					10, 10, 40, 20,
					hNoteAdd,
					0);

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

				CreateWindow (CTRL_SLEDIT,
					"",
					WS_VISIBLE | WS_TABSTOP | WS_BORDER,
					IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TITLE,
					50, 10, 150, 20,
					hNoteAdd,
					0);
	
				CreateWindow (CTRL_MLEDIT,
					"",
					WS_VISIBLE | ES_AUTOWRAP| WS_VSCROLL,
					IDC_TOOLS_NOTEPAD_ADD_SLEDIT_TEXT,
					50, 40, 150, 120,
					hNoteAdd,
					0);
           /* hCtrl_creat= CreateWindowEx(CTRL_MYBUTTON, 
								 "创建",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
								IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT,
								240, 20, 60, 25,
								hNoteAdd,
								(DWORD)&creat_unpushed);	*/
			hCtrl_creat =CreateWindow ("button",
				                          "创建",
				                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
				                          IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT,
								240, 20, 60, 25,
								hNoteAdd, 0);

          /*  hCtrl_return= CreateWindowEx(CTRL_MYBUTTON, 
								"退出",
								WS_VISIBLE | WS_CHILD, WS_EX_TRANSPARENT,
								IDC_TOOLS_NOTEPAD_ADD_BUTTON_QUIT,
								240, 70, 60, 25,
								hNoteAdd,
								(DWORD)&return_unpushed);*/
		hCtrl_return =CreateWindow ("button",
				                          "退出",
				                          WS_CHILD | BS_PUSHBUTTON | WS_VISIBLE,
				                          IDC_TOOLS_NOTEPAD_ADD_BUTTON_QUIT,
								240, 70, 60, 25,
								hNoteAdd,0);
		SetNotificationCallback ( hCtrl_creat, NoteAdd_notify_proc);
		SetNotificationCallback ( hCtrl_return, NoteAdd_notify_proc );
		}
		break;
	
				case MSG_MOUSEMOVE:
				SetWindowAdditionalData( hCtrl_creat, (DWORD)&creat_unpushed );
				InvalidateRect (hCtrl_creat, NULL, TRUE);
				SetWindowAdditionalData( hCtrl_return, (DWORD)&return_unpushed );
				InvalidateRect (hCtrl_return, NULL, TRUE);
				break;
		case MSG_ERASEBKGND:
	    		if (hdc == 0) {
				hdc = GetClientDC (hNoteAdd);
				fGetDC = TRUE;
	 		   }       
		    
	    		if (clip) {
				rcTemp = *clip;
				ScreenToClient (hNoteAdd, &rcTemp.left, &rcTemp.top);
				ScreenToClient (hNoteAdd, &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_NA);
	    		if (fGetDC)
				ReleaseDC (hdc);
	 		   return 0;	
			   
				case IDC_TOOLS_NOTEPAD_ADD_BUTTON_CREAT:
					NotePad_Add(hNoteAdd);
					//emNAUnLoadBitmap();
					DestroyMainWindow (hNoteAdd);
       	 				PostQuitMessage (hNoteAdd);
					break;
    		case MSG_CLOSE:
		{	
				//emNAUnLoadBitmap();
       	 		DestroyMainWindow (hNoteAdd);
       	 		PostQuitMessage (hNoteAdd);
        			return 0;
		}
    	}
    	return DefaultMainWinProc(hNoteAdd, message, wParam, lParam);
}


static int NotePadAdd(HWND hNote)
{
    	MSG Msg;
    	MAINWINCREATE CreateInfo;
	
	fWnd=hNote;
	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 = NoteAddProc;
    	CreateInfo.lx = 0; 
    	CreateInfo.ty = 0;
    	CreateInfo.rx = 320;
    	CreateInfo.by = 216;
    	CreateInfo.iBkColor = GetWindowElementColor (BKC_CONTROL_DEF);
    	CreateInfo.dwAddData = 0;
    	CreateInfo.hHosting=hNote;  
	LoadBitmap (HDC_SCREEN, &jpg_bkgnd_NA, "./image/background/bkgnd29.jpg"); 
        hNoteAdd=CreateMainWindow(&CreateInfo); 
        ShowWindow(hNoteAdd,SW_SHOWNORMAL);
        while(GetMessage(&Msg,hNoteAdd)) 
    {
        TranslateMessage(&Msg);
        DispatchMessage(&Msg);
    }
        MainWindowThreadCleanup(hNoteAdd);
		UnloadBitmap (&jpg_bkgnd_NA);
		UnregisterMyButtonControl ();
        return 0;    
}

⌨️ 快捷键说明

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