[问题] MFC中Thread及MessageBox问题

楼主: Dong0129 (阿东跟上面讲的情况一样b)   2018-06-01 01:53:11
各位版友好,
小弟是MFC新手,
最近在MFC上尝试写一个Thread读档案后透过呼叫写好的函式处理档案内容,
并能透过按钮实现"暂停"及"继续"的作用,
内容如下:
pthread = AfxBeginThread(test, s_path);
UINT TAB_Internal::test(LPVOID lpParam)
{
CString* file_path = (CString*) lpParam; //传档案路径
processfile(*file_path); //程式中已宣告的函式
}
上述写法并没有通过编译,
以下有几点问题想请教...
1.在pthread = AfxBeginThread(test, s_path);显示错误表示AfxBeginThread没有使用
正确引数,请问我该怎么写才是正确的呢?
2.在学习相关的知识时有看到AfxBeginThread的原型如下,
CWinThread* AFXAPI AfxBeginThread(
AFX_THREADPROC pfnThreadProc,
LPVOID pParam,
int nPriority,
UINT nStackSize,
DWORD dwCreateFlags,
LPSECURITY_ATTRIBUTES lpSecurityAttrs)
想请问其中各个参数的作用是什么(查到的资料有说明,但不是很清楚),
是否每次使用AfxBeginThread时,都需要填满这些参数呢?
3.先前在JAVA上实作Thread时,Thread的"暂停"以及"继续"需要自己实作,并没有函式可
直接呼叫,请问在MFC上也需要自己实做吗?还是透过thread->suspend();
以及thread->resume();就能够暂停以及继续Thread呢?
4.请问MessageBox("mb内容","mb标题",mb_btn);中,mb_btn能够自行填入自己定义的按

吗?
作者: kingofsdtw (不能閒下來!!)   2018-06-01 04:01:00
传入null ?传入 bool stop
作者: lightyen (lightyen)   2018-06-01 09:31:00
MFC过时很久都快化成灰了 连软软自己都不推想学习的话不如直接学windows api 例如CreateWindow()
作者: flighteagle (班机鹰)   2018-06-01 15:22:00
s_path -> (LPVPID)pPath原型写了LPVOID pParam, 当然不能硬塞CString不传值 可以用(LPVOID)this, 把dialog丢进去test里面, 可以试着把this还原另外, 使用正确引数, 应该会显示哪个参数错误吧.h -> static UINT test(LPVOID pParam);.cpp -> UINT Dlg::test(LPVOID pParam) {return 0;}AfxBeginThread(test, NULL);

Links booklink

Contact Us: admin [ a t ] ucptt.com