이유)
특히 Updatedata() 같은 경우나 직접 뷰나 다이얼로그를 제어하는 코드같은 경우에는 Assertion 오류를 동반합니다.
WM_USER 메시지로 ON_MESSAGE나 ON_THREAD_MESSAGE로,
SendMessage(),
PostThreadMessage() 를 사용함이 바람직합니다,
방법)
아래와 같이 전역 으로 선언합니다....
CWinThread *pThread;
HWND g_hParallelWnd;
쓰레드를위한 윈도우핸들 선언
UINT ThreadFunc(LPVOID pParam);
BOOL g_bContinue=TRUE;
아래와 같은 형식으로 메세지맵을 등록해주시고요
BEGIN_MESSAGE_MAP(CParallelPort_testView, CFormView)
{{AFX_MSG_MAP(CParallelPort_testView)
ON_MESSAGE(WM_PARALLEL_READ,
OnCommunication)
Communication Message Handleer
END_MESSAGE_MAP()
헤더에서 사용자 메세지 등록해주시고요
#define WM_PARALLEL_READ (WM_USER+1)
헤더에 사용할함수 만들어 주시고요
afx_msg LONG OnCommunication(UINT, LONG);
그다음 아래처럼 돌리시면 됩니다
UINT ThreadFunc(LPVOID pParam)
{
BOOL *pContinue = (BOOL *)pParam;
while(g_bContinue)
{
::
SendMessage(g_hParallelWnd, WM_PARALLEL_READ, 0, 0);
Sleep(500);
}
return 0;
}
LONG CParallelPort_testView::
OnCommunication1(UINT port, LONG lParam)
{
}
There are no comments on this page. [Add comment]