Re: [問題] win32在跑迴圈等待回應時該如何關掉視窗

看板Programming作者時間13年前 (2010/11/25 16:01), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串2/2 (看更多)
==> s910.bbs@ptt.cc (s910) 提到: > 小弟目前開了一開對話視窗 > 開始執行迴圈後,UI就沒有辦法關掉 > 請問有沒有不用thread就可以定時讓主控權回到UI的方法呢? > 程式大致長這樣 > BOOL CALLBACK DlgProc(HWND hwnd, UINT Message, WPARAM wParam, LPARAM lParam) > { > switch(Message) > { > case WM_INITDIALOG: > for(; ;){ > //再跑迴圈的時候就關不掉視窗 > } > break; > } > break; > } > int WINAPI WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, > LPSTR lpCmdLine, int nCmdShow) > { > return DialogBox(hInstance, MAKEINTRESOURCE(IDD_MAIN), NULL, DlgProc); > } update windows 通常是不會用在外部 thread, 因為這樣會讓 process function 重複觸發, 最簡單的方法是在 process function 加入 timer, 例如 cursor refresh 加在 process function, case WM_CREATE: SetTimer(hWnd,ID_Flash_Cursor,500,NULL); case WM_TIMER: if(wParam==ID_Flash_Cursor) -- 只有充滿感情的歌聲能阻止世界末日發生, 音樂才是真正的第五元素. -- ☆ [Origin:椰林風情] [From: 58-115-151-138.cable.dynami] [Login: **] [Post: **]
文章代碼(AID): #1CxXU_dS (Programming)
文章代碼(AID): #1CxXU_dS (Programming)