我的程序运行到某处时,弹出一个对话框,这个对话框的作用是确定插入了一把usbkey,如下CInsertKey Dlg1; 
if (Dlg1.DoModal()==IDOK)
 {
    //do something;
 }
else
 {
     return;
 }现在我想弹出对话框时,如果没有插入usbkey,确定按钮就变灰色,直到插入了再变回来,这时用户点确定按钮就可以转到//do something了,无论何时都可以点取消按钮,如何就退出了。
已经写好检测usbkey的函数了  BOOL CheckKey() 我现在的想法是在对话框初始化的时候起一个线程,用轮询的方式调用CheckKey(),我没写过线程的函数 希望有人能指点一下 我这样可行吗 怎么写呢?

解决方案 »

  1.   

    DWORD threadid;
            mReadHandle = CreateThread(NULL, 0, workThread, (LPVOID)(param), NULL, &threadid);
    定义一个
    DWORD WINAPI workThread(LPVOID lParam);
    在线程函数workThread里面写你的轮询param是你要传进去的参数
      

  2.   

    在MFC里,使用使用这种线程可能会导致你的程序挂起!
    建议楼主不使用线程,而是在弹出的对话框中放一个定时器,在定时器里调用你的CheckKey()
      

  3.   

    又是一个用电子狗的!版权保护真的很麻烦!
    何必用线程,费资源,可以在对话框弹出时设置一个定时器,设置按钮为你想要的,在WM_TIMER消息响应函数中检测电子狗。检测到变回去即可。
      

  4.   

    添加定时器可以用SetTimer,不用的时候KillTimer就可以了。