\r
\r
BEGIN_MESSAGE_MAP(CProgressDlg, CResizableStandAloneDialog)\r
+ ON_MESSAGE(MSG_PROGRESSDLG_UPDATE_UI, OnProgressUpdateUI)\r
END_MESSAGE_MAP()\r
\r
BOOL CProgressDlg::OnInitDialog()\r
PROCESS_INFORMATION pi;\r
HANDLE hRead;\r
\r
- m_Animate.Play(0,-1,-1);\r
+ this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_START,0);\r
\r
CString *pfilename;\r
if(m_LogFile.IsEmpty())\r
pfilename=&m_LogFile;\r
\r
g_Git.RunAsync(this->m_GitCmd,&pi, &hRead,pfilename);\r
- this->DialogEnableWindow(IDOK,FALSE);\r
\r
DWORD readnumber;\r
char buffer[2];\r
while(ReadFile(hRead,buffer,1,&readnumber,NULL))\r
{\r
buffer[readnumber]=0;\r
- ParserCmdOutput((TCHAR)buffer[0]);\r
+ this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_END,(TCHAR)buffer[0]);\r
}\r
\r
CloseHandle(pi.hThread);\r
\r
CloseHandle(hRead);\r
\r
- m_Progress.SetPos(100);\r
- this->DialogEnableWindow(IDOK,TRUE);\r
+ this->PostMessage(MSG_PROGRESSDLG_UPDATE_UI,MSG_PROGRESSDLG_END,0);\r
\r
- m_Animate.Stop();\r
return 0;\r
}\r
\r
+LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam)\r
+{\r
+ if(wParam == MSG_PROGRESSDLG_START)\r
+ {\r
+ m_Animate.Play(0,-1,-1);\r
+ this->DialogEnableWindow(IDOK,FALSE);\r
+ }\r
+ if(wParam == MSG_PROGRESSDLG_END)\r
+ {\r
+ m_Animate.Stop();\r
+ m_Progress.SetPos(100);\r
+ this->DialogEnableWindow(IDOK,TRUE);\r
+ }\r
+\r
+ if(lParam != 0)\r
+ ParserCmdOutput((TCHAR)lParam);\r
+\r
+ return 0;\r
+}\r
int CProgressDlg::FindPercentage(CString &log)\r
{\r
int s1=log.Find(_T('%'));\r
\r
#include "StandAloneDlg.h"\r
\r
+#define MSG_PROGRESSDLG_UPDATE_UI (WM_USER+121)\r
// CProgressDlg dialog\r
+#define MSG_PROGRESSDLG_START 0\r
+#define MSG_PROGRESSDLG_END 110\r
\r
class CProgressDlg : public CResizableStandAloneDialog\r
{\r
int FindPercentage(CString &log);\r
void RemoveLastLine(CString &str);\r
\r
+ LRESULT CProgressDlg::OnProgressUpdateUI(WPARAM wParam,LPARAM lParam);\r
+\r
CString m_LogText;\r
DECLARE_MESSAGE_MAP()\r
};\r