读书人

初学者求教输字符如何没反应

发布时间: 2013-11-20 12:46:02 作者: rapoo

菜鸟求教,输字符怎么没反应啊
LRESULT CALLBACK MainWndProc(HWND hwnd,UINT message,WPARAM wParam,LPARAM lParam){//窗口过程函数


string str=" ";


//消息处理***

switch(message){

case WM_CREATE:{

::SetWindowText(hwnd,"typer");

return 0;

}

case WM_PAINT:{//需要重画窗口客户区
HDC hdc;
PAINTSTRUCT ps;
hdc=::BeginPaint(hwnd,&ps);

//这里可以加入自由内容
::TextOut(hdc,0,0,str.c_str(),str.length());

::EndPaint(hwnd,&ps);
return 0;
}

case WM_CHAR:{

str=str+(char)wParam;//**保存输入的字符串

//RECT rc={0,0,20,20};

::InvalidateRect(hwnd,NULL,false);//使整个窗口变得无效

return 0;


}

case WM_DESTROY:{
::PostQuitMessage(0);
return 0;
}


default:return ::DefWindowProc(hwnd,message,wParam,lParam);

}//switch

}
想实现简单的打字程序。。。。消息处理应该怎样弄啊。。。
[解决办法]
string str=" ";

不能定义为局部变量,局部变量每次进入函数时都被清空了,你将键码加字符串后,wm_paint又把它清空了

读书人网 >VC/MFC

热点推荐