/* Функция главного окна. */ static INT_PTR CALLBACK mainDialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: { //Fill in the list of tabs. { HWND hLB = CWA(user32, GetDlgItem)(hwnd, IDC_TOOLSLIST); for(BYTE i = 0; i < toolsCount; i++)CWA(user32, SendMessageW)(hLB, LB_ADDSTRING, 0, (LPARAM)Languages::get(toolsList[i].lngId)); CWA(user32, SendMessageW)(hLB, LB_SETCURSEL, 0, 0); } //Load the icon. { HICON hIcon = Gui::_loadSharedIcon(currentModule, MAKEINTRESOURCEW(ICON_MAIN)); CWA(user32, SendMessageW)(hwnd, WM_SETICON, ICON_SMALL, (WPARAM)hIcon); CWA(user32, SendMessageW)(hwnd, WM_SETICON, ICON_BIG, (WPARAM)hIcon); } //Open the tab by default. loadTool(hwnd, 0); //Expose the title. CWA(user32, SetWindowTextW)(hwnd, Languages::get(Languages::main_title)); break; } case WM_DESTROY: { for(BYTE i = 0; i < toolsCount; i++)if(toolsList[i].hwnd != NULL)CWA(user32, DestroyWindow)(toolsList[i].hwnd); break; } case WM_CLOSE: { //Send out all the tabs predlozhenenie of closure. for(BYTE i = 0; i < toolsCount; i++)if(toolsList[i].hwnd) { if((bool)CWA(user32, SendMessageW)(toolsList[i].hwnd, WM_CANCLOSE, 0, 0) == false)return TRUE; } CWA(user32, EndDialog)(hwnd, 0); break; } case WM_COMMAND: { switch(LOWORD(wParam)) { case IDC_TOOLSLIST: if(HIWORD(wParam) == LBN_SELCHANGE)loadTool(hwnd, (UINT)CWA(user32, SendMessageW)((HWND)lParam, LB_GETCURSEL, 0, 0)); break; default: return FALSE; } break; } default: return FALSE; } return TRUE; }
/* Функция главного окна. */ static INT_PTR CALLBACK mainDialogProc(HWND hwnd, UINT msg, WPARAM wParam, LPARAM lParam) { switch(msg) { case WM_INITDIALOG: { //Заполняем список вкладок. { HWND hLB = CWA(user32, GetDlgItem)(hwnd, IDC_TOOLSLIST); for(BYTE i = 0; i < toolsCount; i++)CWA(user32, SendMessageW)(hLB, LB_ADDSTRING, 0, (LPARAM)Languages::get(toolsList[i].lngId)); CWA(user32, SendMessageW)(hLB, LB_SETCURSEL, 0, 0); } //Загружаем иконку. { HICON hIcon = Gui::_loadSharedIcon(currentModule, MAKEINTRESOURCEW(ICON_MAIN)); CWA(user32, SendMessageW)(hwnd, WM_SETICON, ICON_SMALL, (WPARAM)hIcon); CWA(user32, SendMessageW)(hwnd, WM_SETICON, ICON_BIG, (WPARAM)hIcon); } //Открываем вкладку по умолчанию. loadTool(hwnd, 0); //Выставляем заголовок. CWA(user32, SetWindowTextW)(hwnd, Languages::get(Languages::main_title)); break; } case WM_DESTROY: { for(BYTE i = 0; i < toolsCount; i++)if(toolsList[i].hwnd != NULL)CWA(user32, DestroyWindow)(toolsList[i].hwnd); break; } case WM_CLOSE: { //Рассылаем всем вкладкам предложенение о закрытие. for(BYTE i = 0; i < toolsCount; i++)if(toolsList[i].hwnd) { if((bool)CWA(user32, SendMessageW)(toolsList[i].hwnd, WM_CANCLOSE, 0, 0) == false)return TRUE; } CWA(user32, EndDialog)(hwnd, 0); break; } case WM_COMMAND: { switch(LOWORD(wParam)) { case IDC_TOOLSLIST: if(HIWORD(wParam) == LBN_SELCHANGE)loadTool(hwnd, (UINT)CWA(user32, SendMessageW)((HWND)lParam, LB_GETCURSEL, 0, 0)); break; default: return FALSE; } break; } default: return FALSE; } return TRUE; }