c++中,添加了一个按钮,句柄为hButton,如何添加他的单击消息处理函数?

,注意不是mfc... ,注意不是mfc 展开
 我来答
哭亦空笑亦空
2013-08-12 · 超过20用户采纳过TA的回答
知道答主
回答量:46
采纳率:100%
帮助的人:48.5万
展开全部
#include <windows.h>
#define OK 10
#define Edit 11
HINSTANCE g_hInstance; //头文件
LRESULT CALLBACK WndProc(HWND,UINT,WPARAM,LPARAM); //窗口函数声明
char szClassName[]="高处寒"; //窗口结构体的名称
char szAppTitle[]="感觉大师浏览器"; //窗口的标题
int PASCAL WinMain(HINSTANCE hInstance, HINSTANCE hPrevInstance, LPSTR lpszCmdParam , INT nCmdShow) //WinMain()函数的定义
{
HWND hMainWnd; //窗口句柄
MSG msg; //消息结构体
WNDCLASS winclass;//窗口结构体
g_hInstance=hInstance;
if(!hPrevInstance)
//判断是否已有应用程序的实例在运行,给窗口结构体的数据成员赋值来规定所要建立的窗口的特征
{
winclass.style=CS_HREDRAW|CS_VREDRAW; //窗口风格
winclass.lpfnWndProc=WndProc; //窗口的消息处理函数
winclass.cbClsExtra=0; //窗口类无扩展
winclass.cbWndExtra=0; //窗口实例无扩展
winclass.hInstance=hInstance; //当前应用程序实例句柄
winclass.hIcon=LoadIcon(NULL,IDI_APPLICATION); //窗口的最小化图标为缺省图标
winclass.hCursor=LoadCursor(NULL,IDC_ARROW); //窗口采用箭头光标
winclass.hbrBackground=CreateSolidBrush(RGB(255,255,0));//窗口背景色为白色
winclass.lpszMenuName=NULL;//无窗口菜单
winclass.lpszClassName=szClassName; //给窗口结构体命名
RegisterClass(&winclass); //注册窗口
}
//下面用CreateWindow()函数来建立窗口,并返回所建立窗口的句柄
hMainWnd=CreateWindow(
szClassName, //窗口结构体的名称
szAppTitle, //窗口的标题
WS_OVERLAPPEDWINDOW, //窗口风格为可重叠窗口
//下面四个参数代表窗口左上角x,y坐标和窗口的宽度与高度,都使用缺省值
CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,CW_USEDEFAULT,
//下面参数分别为父窗口句柄、窗口菜单句柄、应用程序实例句柄和附加参数
NULL,NULL,hInstance,NULL);
ShowWindow(hMainWnd,SW_SHOWNORMAL); //显示窗口
UpdateWindow(hMainWnd); //更新窗口
//下面用While()循环来建立消息循环
while(GetMessage(&msg,NULL,0,0)) //获取消息,填充msg结构体
{

TranslateMessage(&msg); //翻译键盘消息
DispatchMessage(&msg); //向窗口函数发送消息,让窗口函数处理
}
return msg.wParam;
}
LRESULT CALLBACK WndProc(HWND hMainwnd, UINT message, WPARAM wParam, LPARAM lParam) //窗口函数的定义
{
HDC hdc; //设备描述表
PAINTSTRUCT ps; //刷新区域
RECT rect; //矩形结构
HWND hEdit,hButton;

char messageleft[]="按下了鼠标左键!"; //单击鼠标左键,消息框将显示的提示内容
switch(message) //判断消息标识符
{
int wmId,wmEvent;
case WM_CREATE:
hEdit=CreateWindowEx(WS_EX_CLIENTEDGE,"Edit",0,WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON,30,35,100,20,hMainwnd,(HMENU)Edit,
g_hInstance,0);
hButton=CreateWindow("Button","感觉一下",WS_CHILD | WS_VISIBLE |BS_PUSHBUTTON,130,35,65,20,hMainwnd,(HMENU)OK,
g_hInstance,0);
case WM_COMMAND:
wmId = LOWORD(wParam);
wmEvent = HIWORD(wParam);
switch(wmId){
case OK:
char str[400];
GetDlgItemText(hMainwnd,Edit,str,400);
MessageBox(0,str,"确定",MB_OK|MB_ICONINFORMATION);

}
break;
case WM_PAINT: //窗口重绘
{
hdc=BeginPaint(hMainwnd,&ps);
GetClientRect(hMainwnd,&rect); //获取客户区区域
rect.bottom=rect.top+50;
DrawText(hdc,TEXT("感觉一下,你就知道"),-1,&rect,DT_SINGLELINE| DT_CENTER|DT_VCENTER); //在客户区中央输出文字
EndPaint(hMainwnd,&ps);
break;
}
case WM_LBUTTONDOWN:
{
MessageBox(hMainwnd,messageleft,"使用API创建窗口",MB_OK|MB_ICONINFORMATION);
break;
}
case WM_DESTROY://关闭应用程序窗口时发出的消息
{
PostQuitMessage(0); //发出WM_QUIT消息,结束应用程序
return 0;
}
default :
break;
}
return DefWindowProc(hMainwnd,message,wParam,lParam); //其它消息交给Windows做默认处理
}
479701998
2013-08-12 · TA获得超过626个赞
知道小有建树答主
回答量:340
采纳率:25%
帮助的人:243万
展开全部
1.在类视图中,右键需要添加处理函数的类,选择属性。

2.在”属性“窗口中,单击“消息”按钮。

3.在消息列表框中,选择需要添加的消息。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式