看板Programming
标 题Re: [问题] win32在跑回圈等待回应时该如何关掉视窗
发信站椰林风情 (Thu Nov 25 14:52:12 2010)
转信站ptt!news.ntu!Palmarama
==> [email protected] (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: **]