#include <afxmt.h>
//---------- g_var
UINT ThreadProc(LPVOID pParam);
CEvent g_eBusy;
BOOL CPicFileDlg::OnInitDialog()
{
CFileDialog::OnInitDialog();
// TODO: Add extra initialization here
SetTimer(1, 500, NULL);
g_eBusy.SetEvent(); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
UINT ThreadProc(LPVOID pParam)
{
g_eBusy.ResetEvent(); CWnd hWnd;
hWnd.Attach((HWND)pParam);
ASSERT(hWnd); CRect m_Rect;
CDC *m_pDC;
hWnd.GetClientRect(&m_Rect);
m_pDC=hWnd.GetDC(); PreViewPic(g_sFileName, m_pDC, m_Rect);
hWnd.Detach();
g_eBusy.SetEvent();
return 0;
}
//---------- g_var
UINT ThreadProc(LPVOID pParam);
CEvent g_eBusy;
BOOL CPicFileDlg::OnInitDialog()
{
CFileDialog::OnInitDialog();
// TODO: Add extra initialization here
SetTimer(1, 500, NULL);
g_eBusy.SetEvent(); return TRUE; // return TRUE unless you set the focus to a control
// EXCEPTION: OCX Property Pages should return FALSE
}
UINT ThreadProc(LPVOID pParam)
{
g_eBusy.ResetEvent(); CWnd hWnd;
hWnd.Attach((HWND)pParam);
ASSERT(hWnd); CRect m_Rect;
CDC *m_pDC;
hWnd.GetClientRect(&m_Rect);
m_pDC=hWnd.GetDC(); PreViewPic(g_sFileName, m_pDC, m_Rect);
hWnd.Detach();
g_eBusy.SetEvent();
return 0;
}
解决方案 »
- 对话框透明问题
- vs2010的问题,关于CString、
- 怎么改变窗体或者控件的下陷样式,变成平面样式。
- 能否将进程句柄,作为int或者其它类型保存?
- 那里有VC6.0内幕技术的第五版下载
- 怎么样做成象html中的那样,鼠标移到标题上面就有下画线出现和鼠标变为小手形状?
- 怎样使窗口的大小不可改动?(我用SDK)
- 使用using namespace std 时出现的问题!各位帮忙
- 我一般看见的是这样:int main(int argc, char* argv[]) 什么时候可以生成这样:int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])?
- 服务问题
- 对话框问题,送分了
- HELP:当对话框发生大小变化时,其中的控件如何才能随之变化?
void CEventTestDlg::OnButton1()
{
// TODO: Add your control notification handler code here m_hEvent = CreateEvent(
NULL, // no security attributes
TRUE, // manual-reset event
TRUE, // initial state is signaled
"TestEvent" // object name
);
ResetEvent(m_hEvent);
AfxBeginThread(SimProc,m_hEvent);
DWORD dwWaitResult=0;
dwWaitResult = WaitForSingleObject(m_hEvent,5000);
switch(dwWaitResult)
{
case WAIT_ABANDONED:
break;
case WAIT_OBJECT_0:
MessageBox("proc finish!");
break;
case WAIT_TIMEOUT:
MessageBox("Time Out");
break;
default:
break;
}
CloseHandle(m_hEvent);
}UINT SimProc(LPVOID pParam)
{//Process.......
.......//
HANDLE hEvent = (HANDLE)pParam;
if (!hEvent)
{
ASSERT(FALSE);
return -1;
}
SetEvent(hEvent);
return 0;
}
{
// TODO: Add your message handler code here and/or call default
CString sName=GetFileName(), sExt=GetFileExt(); if (sName=="" && sExt.CompareNoCase("bmp") && sExt.CompareNoCase("gif") && sExt.CompareNoCase("jpg"))
return; if (g_sFileName.CompareNoCase(sName) && WaitForSingleObject(g_eBusy, 0)==WAIT_OBJECT_0)
{
g_sFileName=sName;
AfxBeginThread(ThreadProc,m_hPicView.GetSafeHwnd());
}
CFileDialog::OnTimer(nIDEvent);
}void CPicFileDlg::OnDestroy()
{
// TODO: Add your message handler code here
KillTimer(1);
WaitForSingleObject(g_eBusy, INFINITE); CFileDialog::OnDestroy();
}