窗口响应问题
时间: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;
}
//注册窗口类
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,程序无限循环
break;
没有BeginPaint EndPaint,无法清除无效区域
总是收到WM_PAINT,程序无限循环
作者: wocow3 发布时间: 2011-12-02
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28