Статьи по Assembler


Main.cpp для mycall (c++) - часть 4


}

return 0;

}

//Обработка уведомления BN_CLICKED, передаваемого кнопкой при клике:

//в состоянии online=TRUE прекращает дозвон (разрывает соединение) и включает списки

//в состоянии online=FALSE отключает списки и начинает дозвон

if((HIWORD(w_param)==BN_CLICKED)&&(LOWORD(w_param))==1003){

if(online){

EnableWindow(butt_window,FALSE);

ras_hangup();

EnableWindow(butt_window,TRUE);

disable_controls(FALSE);

}else{

disable_controls(TRUE);

ras_dial();

}

return 0;

}

break;

//Обработка сообщения WM_USER, используемого в MyCall нитью монитора разрыва.

//Обнаружив факт разрыва соединения, нить монитора передает WM_USER. Если был коннект,

//то включаются списки, в противном случает выполняется повторный дозвон

case WM_USER:

ras_hangup();

l_param?disable_controls(FALSE):ras_dial();

return 0;

//Обработка сообщения WM_MOVE: запоминание новой позиции окна

//для последующей записи ее в файл mycall.ini

case WM_MOVE:

RECT win_pos;

if(GetWindowRect(main_window,&win_pos)){

main_win_left=win_pos.left;

main_win_top=win_pos.top;

/div>

}else{

main_win_left=(int)LOWORD(l_param);

main_win_top=(int)HIWORD(l_param);

}

return 0;

//При завершении работы приложения записать файл mycall.ini,

//и освободить память

case WM_DESTROY:

save_ini();

if(dat_buffer){GlobalFree(dat_buffer);}

PostQuitMessage(EXIT_NORMAL);

return 0;

//При закрытии главного окна заблокировать кнопку

//и разорвать соединение

case WM_CLOSE:

EnableWindow(butt_window,FALSE);

if(online){ras_hangup();}

break;

}

//Обработка глобального оконного сообщения, используемого для

//взаимодействия экземпляров приложения. Получив это сообщение,

//экземпляр, запущенный первым, сообщает дескриптор своего главного окна.

//Сообщение, полученное вторым, принимает от первого дескриптор его главного окна,

//выводит его на первый план и завершается. Подробнее...

if(message==my_message){

if((HWND)w_param!=main_window){

if(l_param==0){

SendMessage(HWND_BROADCAST,my_message,(WPARAM)main_window,1);




- Начало -  - Назад -  - Вперед -