📄 wavmain.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 + -