0

我想line从另一个线程更新变量并将其绘制在 void 中CMFCApplicationUpdateUIView::OnDraw(CDC* pDC)

我有两个问题:

第一的:

'CMFCApplicationUpdateUIDoc::Thread_no_1':非标准语法;使用 '&' 创建指向成员的指针

第二:

如何正确更新lineThread_no_1我需要使用 PostMessageW 什么?或者?

MFCApplicationUpdateUIDoc.h

class CMFCApplicationUpdateUIDoc : public CDocument
{
public:
    virtual ~CMFCApplicationUpdateUIDoc();
    void StartCount();
    DWORD Thread_no_1(LPVOID lpParam);

};

MFCApplicationUpdateUIDoc.cpp

void CMFCApplicationUpdateUIDoc::StartCount()
{
    int Data_Of_Thread_1 = 1;
    HANDLE Handle_Of_Thread_1 = 0;
    Handle_Of_Thread_1 = CreateThread(NULL, 0, CMFCApplicationUpdateUIDoc::Thread_no_1, &Data_Of_Thread_1, 0, NULL);
    if (Handle_Of_Thread_1 == NULL)
        ExitProcess(Data_Of_Thread_1);
}

DWORD CMFCApplicationUpdateUIDoc::Thread_no_1(LPVOID lpParam)
{
    int     Data = 0;
    int     count = 0;
    HANDLE  hStdout = NULL;

    if ((hStdout = GetStdHandle(STD_OUTPUT_HANDLE))== INVALID_HANDLE_VALUE)
        return 1;

    Data = *((int*)lpParam);

    for (count = 0; count <= 4; count++)
    {
        line = count;
    }

    return 0;
}

MFCApplicationUpdateUIView.cpp

void CMFCApplicationUpdateUIView::OnDraw(CDC* pDC)
{
    CMFCApplicationUpdateUIDoc* pDoc = GetDocument();
    pDoc->StartCount();
    ASSERT_VALID(pDoc);
    if (!pDoc)
        return;

    CString str;
    str.Format(L"%d", pDoc->line);
    pDC->TextOutW(0, 0, str);
}
4

0 回答 0