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

📄 wavmain.cpp

📁 wavlet compression on c++ only cods
💻 CPP
字号:
// Copyright (c) 1999 Stephen T. Welstead. All rights reserved.
//  WAVMAIN.CPP  WinMain function for the WAV application

#include <stdlib.h>

#include "uwl.h"
#include "imgwin.h"
#include "subwin.h"
#include "wavwin.h"
#include "wavplot.h"
#include "wavzwin.h"
#include "wavdzwin.h"

// For menu position constants:
#include "mdifmids.h"
#include "wavrids.h"

// global variables

char   szFrameClass [] = "IMGFrame" ;
char   szWAVSClass [] = "WAVChild";
char   szIMGSClass [] = "IMGChild";
char   szSUBSClass [] = "SUBChild";
char   szZSUBSClass [] = "ZSUBChild";
char   szWPLOTClass [] = "WPLOTChild";
char   szZENCClass [] = "ZENCChild";
char   szZDECClass [] = "ZDECChild";
char   WAV_title [] = "WAV Window";
char   DEC_title [] = "DEC Window";
char   IMG_title [] = "IMG Window";
char   SUB_title [] = "SUB Window";

HINSTANCE hInst ;

int WINAPI WinMain (HINSTANCE hInstance, HINSTANCE hPrevInstance,
		    LPSTR, int nCmdShow)
     {
     HACCEL   hAccel ;
     HWND     hwndFrame, hwndClient;
     MSG      msg ;
     tmdi_type_list_struct *child_list,*child_type;
     tmdi_frame_window *wav_frame_window;
     twavelet_window_manager *wavelet_manager;
     twavelet_zerotree_window_manager *zerotree_manager;
     tdecode_zerotree_window_manager *decode_zerotree_manager;
     twavelet_plot_window_manager *wavelet_plot_window_manager;
     timg_window_manager *img_manager;
     tsub_window_manager *sub_manager; 
     int width,height;

     child_list = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_list;
     child_type->type_id = WAV_OPEN;
     child_type->the_class = szIMGSClass;
     child_type->the_title = IMG_title;

     child_type->next = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_type->next;
     child_type->type_id = WAV_COMPRESS;
     child_type->the_class = szWAVSClass;
     child_type->the_title = WAV_title;

     child_type->next = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_type->next;
     child_type->type_id = WAV_ZEROTREE_ENC;
     child_type->the_class = szZENCClass;
     child_type->the_title = WAV_title;

     child_type->next = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_type->next;
     child_type->type_id = WAV_ZEROTREE_DEC;
     child_type->the_class = szZDECClass;
     child_type->the_title = DEC_title;

     child_type->next = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_type->next;
     child_type->type_id = WAV_PLOT;
     child_type->the_class = szWPLOTClass;
     child_type->the_title = WAV_title;

     child_type->next = (tmdi_type_list_struct *)
	  malloc((size_t)sizeof(tmdi_type_list_struct));
     child_type = child_type->next;
     child_type->type_id = WAV_OPEN_SUB;
     child_type->the_class = szSUBSClass;
     child_type->the_title = SUB_title;

     child_type->next = NULL;

     hInst = hInstance ;
     gdlg_instance = hInstance;

     wav_frame_window = new tmdi_frame_window (hInstance,
       (LRESULT CALLBACK)FrameWndProc,0,"","WAV System",szFrameClass,"WAV_ICON",
       child_list,SHOW_ABOUT);
     img_manager = new timg_window_manager (hInstance,
	      wav_frame_window,0,szIMGSClass,"WAV_ICON");
     wavelet_manager = new twavelet_window_manager (hInstance,
	      wav_frame_window,0,szWAVSClass);
     zerotree_manager = new twavelet_zerotree_window_manager (hInstance,
	      wav_frame_window,0,szZENCClass);
     decode_zerotree_manager = new tdecode_zerotree_window_manager (hInstance,
	      wav_frame_window,0,szZDECClass);
     wavelet_plot_window_manager = new twavelet_plot_window_manager (hInstance,
	      wav_frame_window,0,szWPLOTClass);
     sub_manager = new tsub_window_manager (hInstance,wav_frame_window,
	      0,szSUBSClass,"WAV_ICON",img_manager,wavelet_manager,
	      decode_zerotree_manager,1);

     if (!hPrevInstance) 
          {
	  wav_frame_window->register_window_class();
	  wavelet_manager->register_window_class();
	  zerotree_manager->register_window_class();
	  decode_zerotree_manager->register_window_class();
	  img_manager->register_window_class();
	  wavelet_plot_window_manager->register_window_class();
	  sub_manager->register_window_class();
	  }

     wav_frame_window->init_menu (hInst,"MainMenu",INIT_MENU_POS);

     img_manager->init_menu(hInst,"IMGMenu",3);
     img_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);
     wavelet_manager->init_menu(hInst,"WAVMenu",WAV_MENU_CHILD_POS);
     wavelet_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);
     zerotree_manager->init_menu(hInst,"WAVEncZMenu",WAV_MENU_CHILD_POS);
     zerotree_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);
     decode_zerotree_manager->init_menu(hInst,"WAVDecZMenu",WAV_MENU_CHILD_POS-1);
     decode_zerotree_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);
     wavelet_plot_window_manager->init_menu(hInst,"WAVPLOTMenu",
	      WAV_MENU_CHILD_POS);
     wavelet_plot_window_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);
     sub_manager->init_menu(hInst,"SUBMenu",SUB_MENU_CHILD_POS);
     sub_manager->set_frame_menu (wav_frame_window->frame_menu,
	      wav_frame_window->frame_submenu);

     hAccel = LoadAccelerators (hInst, "MdiAccel") ;

     // Create the frame window
     width = GetSystemMetrics (SM_CXSCREEN);
     height = GetSystemMetrics (SM_CYSCREEN);
     hwndFrame = CreateWindow (szFrameClass, "WAV System",
			       WS_OVERLAPPEDWINDOW | WS_CLIPCHILDREN,
			       0, 0,
                               width, height,
			       NULL,wav_frame_window->frame_menu,
			       hInstance, NULL) ;

     hwndClient = GetWindow (hwndFrame, GW_CHILD) ;

     ShowWindow (hwndFrame, nCmdShow) ;
     UpdateWindow (hwndFrame) ;

     while (GetMessage (&msg, NULL, 0, 0))
          {
          if (!TranslateMDISysAccel (hwndClient, &msg) &&
              !TranslateAccelerator (hwndFrame, hAccel, &msg))
               {
               TranslateMessage (&msg) ;
               DispatchMessage (&msg) ;
	       }
	  }

     delete img_manager;
     delete wavelet_manager;
     delete zerotree_manager;
     delete decode_zerotree_manager;
     delete sub_manager;
     delete wav_frame_window;
     delete wavelet_plot_window_manager;
     free_mdi_type_list_struct (child_list);

     return msg.wParam ;
     }


⌨️ 快捷键说明

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