+ -
当前位置:首页 → 问答吧 →  窗口响应问题

窗口响应问题

时间:2011-12-01

来源:互联网

我用createwindowex函数来创建一个窗口 但是窗口是创建出来了 但是为什么我鼠标一移动到客户区或者点击的时候窗口就停止工作 白屏了 !求解啊

//注册窗口类
char szclassname[]="MAINCLASS";
WNDCLASSEX wnd;
wnd.cbSize=sizeof(wnd);
wnd.style=CS_HREDRAW; 
wnd.lpfnWndProc=WndProc; 
wnd.cbClsExtra=0 ;
wnd.cbWndExtra=0; 
wnd.hInstance=NULL; 
wnd.hIcon=LoadIcon(NULL,IDI_APPLICATION); 
wnd.hCursor=LoadCursor(NULL,IDC_ARROW); 
wnd.hbrBackground=(HBRUSH)::GetStockObject(BLACK_BRUSH); 
wnd.lpszMenuName=NULL; 
//注意这个类型的问题
wnd.lpszClassName=LPCWSTR(szclassname); 
wnd.hIconSm=NULL; 

RegisterClassEx(&wnd);
//创建窗口
HWND hwnd=CreateWindowEx(0,LPCWSTR(szclassname),L"直接控屏",WS_OVERLAPPEDWINDOW,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,NULL,NULL,NULL,NULL);
if(hwnd==NULL)
{  
MessageBox(NULL,L"C直接控屏",L"创建窗口出错",MB_OK);
return ;
}
SyshWnd=hwnd;
//显示窗口 
ShowWindow(hwnd,SW_SHOW);
UpdateWindow(hwnd);

-----------------------------------------------------------------------
LRESULT CALLBACK WndProc(HWND hwnd,UINT message,WPARAM wparam,LPARAM lparam)
{  

int wmid,wmEvent;
switch(message)
{
case WM_COMMAND:
wmid=LOWORD(wparam);
wmEvent=HIWORD(wparam);
return DefWindowProc(hwnd,message,wparam,lparam);
break;
case WM_MOUSEMOVE:
break;
//窗口定时器响应
case WM_TIMER:
//MessageBox(0,L"Timer",L"响应",MB_OK);
break;
case WM_PAINT:
break;
case WM_RBUTTONUP:
break;
case WM_RBUTTONDOWN:
break;
case WM_LBUTTONDOWN:
break;
case WM_LBUTTONUP:
break;
default:
return DefWindowProc(hwnd,message,wparam,lparam);
}
return 0;

}

作者: huanglei2   发布时间: 2011-12-01

是不是没有处理WM_NOTIFY消息

作者: hu112986bin   发布时间: 2011-12-01

用MFC开窗口完了,SDK的比较蛋疼

作者: Kaile   发布时间: 2011-12-01

case WM_PAINT:
break;
没有BeginPaint EndPaint,无法清除无效区域
总是收到WM_PAINT,程序无限循环

作者: wocow3   发布时间: 2011-12-02