Re: [問題] win32在跑迴圈等待回應時該如何關掉視窗
==> 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: **]
討論串 (同標題文章)
完整討論串 (本文為第 2 之 2 篇):