VC Win32(不要MFC)怎么创建按钮和响应消息

我试着这样hButton=CreateWindowEx(NULL,L"button",NULL,WS_POPUP|WS_VISIBLE|WS_CHILD,0,0,100,... 我试着这样
hButton =CreateWindowEx(NULL,L"button",NULL,WS_POPUP | WS_VISIBLE|WS_CHILD,0,0,100,20,hWnd,NULL,NULL,NULL);
然后出来一个按钮,不过不在hWnd标示的窗体内
还有怎么响应消息。
Msdn只讲了有什么消息= =太不负责任了
对了我没有ShowWindow按钮就出现了,求解释
展开
 我来答
fwlbr
2013-01-19 · 超过30用户采纳过TA的回答
知道答主
回答量:88
采纳率:0%
帮助的人:64.9万
展开全部
插入对话框资源啊,用对话框资源简单。
//添加资源文件://添加一个标识符为IDD_DIALOG(对话框)的对话框,center属性设置为TRUE
//对话框上添加两个按钮,IDC_BUTTON_NOTE(提示)和IDC_BUTTON_EXIT(退出)

#include <Windows.h>#include "resource.h"//资源文件,系统自动添加对话框上各个标识符的值,用户不要编辑
//声明对话框处理函数DialogProc函数,extern也可以不要//对话框处理函数参数:窗口句柄,消息号,宽参数,长参数
//返回值:BOOL
//函数名称随意
//CALLBACK是函数修饰符,相当于__stdcall
extern BOOL CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam);

int WINAPI WinMain(HINSTANCE hInstance,HINSTANCE hPrevInstance,LPSTR lpCmdLine,int nShowCmd){
HWND hwnd;
MSG msg;
//创建对话框CreateDialog函数
//参数 1:实例句柄
//参数 2:对话框资源字符串形式标识符
//参数 3:父窗口句柄
//参数 4:对话框消息处理函数
hwnd=CreateDialog(hInstance,MAKEINTRESOURCE(IDD_DIALOG),NULL,DialogProc);

//显示窗口ShowWindow函数 //参数 1:窗口句柄
//参数 2:显示样式
ShowWindow(hwnd,nShowCmd);

//主消息循环 while (GetMessage(&msg,hwnd,0,0))//GetMessage函数,获取窗口消息,第一个参数是MSG结构指针,第二个参数窗口句柄
{
//DispatchMessage函数,将消息交给处理程序处理
DispatchMessage(&msg);
}
return msg.wParam;
}

BOOL CALLBACK DialogProc(HWND hWnd,UINT uMsg,WPARAM wParam,LPARAM lParam){
switch (uMsg)
{
case WM_COMMAND://按钮或菜单命令按下时收到这个消息
switch(LOWORD(wParam))//wParam的低字节是所按下按钮的标识符
{
case IDC_BUTTON_NOTE:
MessageBox(NULL,TEXT("您点击了按钮!"),TEXT("提示"),MB_OK);
break;
case IDC_BUTTON_EXIT:
DestroyWindow(hWnd);
break;
}
break;
case WM_CLOSE://点击右上角关闭按钮收到这个消息
DestroyWindow(hWnd);
break;
case WM_DESTROY://销毁窗口时收到这个消息
PostQuitMessage(0);//让GetMessage返回0,结束循环,退出程序
}
return FALSE;//如果你不希望系统默认处理,返回TRUE
}

/*显示样式:SW_HIDE 隐藏窗口
SW_SHOWMINIMIZED 最小化显示
SW_SHOWMAXIMIZED 最大化显示
SW_SHOW 显示窗口

*/

参考资料: tengge Windows编程教程

46551489
推荐于2016-06-22 · TA获得超过261个赞
知道小有建树答主
回答量:79
采纳率:0%
帮助的人:119万
展开全部
在按钮的父窗体的WindowProc中处理WM_COMMAND消息,消息的LOWORD(wParam)是控件的ID,通过判断控件的ID为不同的按钮指定不同的响应方式。

参考资料: http://msdn.microsoft.com/en-us/library/ms647591(VS.85).aspx

本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
心泰阮
2013-03-18 · 贡献了超过387个回答
知道答主
回答量:387
采纳率:0%
帮助的人:71.4万
展开全部
LOWORD(wParam参数)的按钮,在父窗体的WindowProc处理WM_COMMAND消息,该消息是ID的控制,确定控制的ID来指定一个不同的反应,不同的按钮。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
vc2008初学者
2013-01-20
知道答主
回答量:18
采纳率:0%
帮助的人:8.8万
展开全部
MFC不是再好吗?写的程序小是大了点,但是开发速度快啊,你见谁写个程序还用纯SDK,API来写?
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式