![]() |
Programming Guide |
WideStudio Index Table of contents |
Como indicar um diálogo no procedimento de evento WSEV_EXIT
É necessário salvar os dados antes de iniciar um diálogo quando terminar a aplicação pelo encerramento da janela. Neste caso, é conveniente usaro procedimento de evento WSEV_EXIT da classe WSCwindow/WSCmainWindow.
A classe WSCwindow/WSCmainWindow dispara WSEV_EXIT quando a janela é fechada antes do término da aplicação.
Primeiro, ajuste "True" para a propriedade WSNexit de instância WSCwindow/WSCmainWindow a qual é usada como janela principal na aplicação, insira um procedimento de evento nela com WSEV_EXIT trigger.
Apresentaremos um exemplo a seguir.
Cria um diálogo que pergunta se encerra ou continua.
Se [OK] é selecionado, então encerra..
Se [NO] é selecionado, sai da aplicação sem processo.
Se [CANCEL] é selecionado, nada é feito e não sai da aplicação. #include <WScom.h> #include <WSCfunctionList.h> #include <WSCbase.h> //---------------------------------------------------------- //Function for the event procedure //---------------------------------------------------------- #include <WSCmessageDialog.h> #include <WSDtimer.h> //The timer procedure which redisplay the window. void delayproc(unsigned char,void* ptr){ WSCbase* object = (WSCbase*)ptr; object->setVisible(True); } //EXIT event procedure //Indicates a dialog. void exit_ep(WSCbase* object){ if (object->getVisible() != False){ return; } WSCmessageDialog* msg = WSGIappMessageDialog(); //A msg->setProperty(WSNwidth,500); msg->setProperty(WSNno,True); msg->setProperty(WSNdefaultPosition,True); msg->setProperty(WSNlabelString, "Exit and save data?\n If you do not want to save and exit,push NO..."); //Indicates the dialog. long ret = msg->popup(); //B if (ret == WS_DIALOG_OK){ //When OK is selected.. C //saving some data ... exit(0); }else if (ret == WS_DIALOG_NO){ //When NO is selected.. D exit(0); }else if (ret == WS_DIALOG_CANCEL){ //When CANCEL is selected.. E WSGIappTimer()->addTriggerProc(delayproc,WS250MS,object); } } static WSCfunctionRegister op("exit_ep",(void*)exit_ep);Obtenha a instância do diálogo de mensagem (A)
Get the instance of the message dialog (A), indicando-a (B). Verifique o resultado do diálogo(C)(D)(E). Se necessário executar o procedimento com retardo para reapresentar a janela. Eventos de saída são necessário para promover a reapresentação da janela.
[o diálogo de saída]
Copyright(C) WideStudio Development Team, 1999-2005 | Last modified: Jan 05, 2005 |