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

📄 toolpanel.c

📁 minigui PDA系统 可实现手机功能
💻 C
字号:
#include "toolpanel.h"static BITMAP tool_bkgnd;static PLOGFONT logfont;int myLoadBitmapTool (BITMAP* bm, const char* filename){    char full_path [MAX_PATH + 1];#ifndef _PASS#define _PASS    strcpy (full_path, "image/toolpanel/");    strcat (full_path, filename);#endif    return LoadBitmap (HDC_SCREEN, bm, full_path);}static char *xmBmpName[]={"notepad.png","memoire.png","alarm.png","date.png","source.png","calculator.png","ad.png","unitconversion.png","picture.png" ,"tool_return.png" };static char *xmTitle[]={"记事本", "备忘录", "闹 钟","日程表","资源管理","计算器","数据采集","单位换算","图片浏览","返 回"};static XMBUTTON xmButton [BTM_NUM];static int WhichBox(int x,int y){  int i;  for (i=0;i<BTM_NUM;i++)  {    if ((x>xmButton[i].x)&&(x<xmButton[i].x+xmButton[i].w)        &&(y>xmButton[i].y)&&(y<xmButton[i].y+xmButton[i].h))      return i;  }  return -1;}static int changeMode(HWND hWnd,int x,int y,int mode){  int btm=WhichBox(x,y);  int i;  RECT rect;  static int lastbtm=-1;  static int lastmode=BTM_FLAT;  if ((btm==lastbtm)&&(mode==lastmode))    return btm;  for (i=0;i<BTM_NUM;i++)  {    if(xmButton[i].mode==BTM_FLAT) continue;    xmButton[i].mode=BTM_FLAT;    rect.left=xmButton[i].x;    rect.right=xmButton[i].x+xmButton[i].w;    rect.top=xmButton[i].y;    rect.bottom=xmButton[i].y+xmButton[i].h;    InvalidateRect(hWnd,&rect,FALSE);  }  if (btm!=-1)  {    xmButton[btm].mode=mode;    rect.left=xmButton[btm].x;    rect.right=xmButton[btm].x+xmButton[btm].w;    rect.top=xmButton[btm].y;    rect.bottom=xmButton[btm].y+xmButton[btm].h;    InvalidateRect(hWnd,&rect,FALSE);  }  if(btm!=lastbtm)    InvalidateRect(hWnd,&rect,FALSE);  lastbtm = btm;  lastmode = mode;  return btm;}static int LogOut(HWND hWnd){	int i;    for(i=0;i<BTM_NUM;i++)        UnloadBitmap(&(xmButton[i].bitmap));    UnloadBitmap(&tool_bkgnd);    DestroyLogFont (logfont);    DestroyMainWindow (hWnd);    PostQuitMessage (hWnd);    return 0;}int ToolPanelWinProc(HWND hWnd, int message, WPARAM wParam, LPARAM lParam){    static int lastdown=-1;    static int iStart = 0;    static int iStartPos = 0;     switch (message)    {      case MSG_CREATE:      {			logfont = CreateLogFont (NULL, "song", "GB2312",                         FONT_WEIGHT_REGULAR, FONT_SLANT_ROMAN, FONT_SETWIDTH_NORMAL,                        FONT_SPACING_CHARCELL, FONT_UNDERLINE_NONE, FONT_STRUCKOUT_NONE,                         8, 0);      }      break;      case MSG_LBUTTONDOWN:      {        lastdown = changeMode(hWnd,LOWORD(lParam),HIWORD(lParam),BTM_DOWN );      }      break;  	        case MSG_LBUTTONUP:      {        int up = changeMode(hWnd,LOWORD(lParam),HIWORD(lParam),BTM_FLAT );        if(up==-1) 			break;			        if(up==lastdown)        {            switch(up)			{				case  IDM_NOTEBK:					NotePad (hWnd);					break ;								case  IDM_MEMOIRE:					Memoire( hWnd);					break ;        				case  IDM_ALARM:					alarm(hWnd);					break ;								case  IDM_CALENDAR:					monthcal (hWnd);					break ;							case  IDM_RESORCE:					printf ("This is IDM_RESORCE\n");					break ;								case  IDM_CACULATOR:					Calculator(hWnd);					break ;								case  IDM_AD:					OpenAD (hWnd);					break ;								case  IDM_UNITCONVERSION:					UnitConversion(hWnd);					break ;								case  IDM_PICTURE:					picture(hWnd);					break ;								case  IDM_RETURN:					LogOut(hWnd);					break ;			}        }      }      break;                                                                              case MSG_MOUSEMOVE:      {        changeMode(hWnd,LOWORD(lParam),HIWORD(lParam),BTM_UP );      }      break;            case MSG_PAINT:      {        HDC hdc;        RECT rc;//,rect;        int i;        hdc = BeginPaint (hWnd);        GetWindowRect(hWnd,&rc);		FillBoxWithBitmap (hdc,0, 0, 320, 200, &tool_bkgnd);        for(i=0;i<BTM_NUM;i++)        {          if(xmButton[i].mode == BTM_UP)            Draw3DUpThickFrame (hdc, xmButton[i].x,  xmButton[i].y ,                  xmButton[i].x+xmButton[i].w,xmButton[i].y+xmButton[i].h,                  PIXEL_black);///////////////////////////PIXEL_lightwhite          else  if(xmButton[i].mode == BTM_DOWN)            Draw3DDownThickFrame (hdc, xmButton[i].x,  xmButton[i].y ,                  xmButton[i].x+xmButton[i].w,xmButton[i].y+xmButton[i].h,                  PIXEL_black);/////////////////////////////PIXEL_lightwhite          FillBoxWithBitmap (hdc, xmButton[i].x+xmButton[i].bmpx,                                xmButton[i].y+xmButton[i].bmpy,                                0, 0, &xmButton[i].bitmap);		SetBkMode(hdc, BM_TRANSPARENT);		SetTextColor(hdc, PIXEL_red);		SetTextCharacterExtra( hdc, 0);		SelectFont (hdc, logfont);        TextOut(hdc,xmButton[i].x+xmButton[i].titlex,xmButton[i].y+xmButton[i].titley,                  xmButton[i].title);        }        EndPaint (hWnd,hdc);      }      return 0;      case MSG_CLOSE:		LogOut(hWnd);        return 0;    }    return DefaultMainWinProc (hWnd, message, wParam, lParam);}static void initBTMs(void){    int i,j;    for(i=0;i<BTM_NUM;i++)    {		xmButton[i].x=2+(i%5)*63;//170 + 		xmButton[i].y=10 + ((int)(i/5))*95;		xmButton[i].h=70;		xmButton[i].w=61;		xmButton[i].bmpx=7;		xmButton[i].bmpy=5;		strcpy(xmButton[i].title,xmTitle[i]);		j=strlen(xmButton[i].title);		xmButton[i].titlex=(11-j)*3;		xmButton[i].titley=52;		myLoadBitmapTool (&(xmButton[i].bitmap),xmBmpName [i]);    }}void InitToolPanelInfo (PMAINWINCREATE pCreateInfo, HWND hWnd){      pCreateInfo->dwStyle = WS_CAPTION | WS_BORDER | WS_VISIBLE ;    pCreateInfo->dwExStyle =  WS_EX_IMECOMPOSE;;    pCreateInfo->spCaption = "工具面板";    pCreateInfo->hMenu = 0;    pCreateInfo->hCursor = GetSystemCursor(0);    pCreateInfo->hIcon = 0;    pCreateInfo->MainWindowProc = ToolPanelWinProc;    pCreateInfo->lx = 0;    pCreateInfo->ty = 0;    pCreateInfo->rx = 320;    pCreateInfo->by = 240;    pCreateInfo->iBkColor = PIXEL_lightwhite;    pCreateInfo->dwAddData = (DWORD)0;    pCreateInfo->hHosting = hWnd;}int ToolPanel(HWND hWnd){    MSG Msg;    MAINWINCREATE CreateInfo;    HWND hMainWnd;        initBTMs();        InitToolPanelInfo (&CreateInfo, hWnd);    	LoadBitmap (HDC_SCREEN, &tool_bkgnd, "image/background/bkgnd29.jpg");		hMainWnd = CreateMainWindow (&CreateInfo);	    if (hMainWnd == HWND_INVALID)        return 0;    while( GetMessage(&Msg, hMainWnd) )    {        TranslateMessage(&Msg);        DispatchMessage(&Msg);    }    MainWindowThreadCleanup(hMainWnd);    return 0;}

⌨️ 快捷键说明

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