vc如何判断button是否被点击?
用createwindow创建了一个button,点击它时退出程序,怎么写?其实就是如何设计button被点击时的动作。谢谢...
用createwindow 创建了一个button,点击它时退出程序,怎么写?
其实就是如何设计button被点击时的动作。
谢谢 展开
其实就是如何设计button被点击时的动作。
谢谢 展开
4个回答
展开全部
在消息过程函数中响应WM_COMMAND消息。wParam低16位为button ID,高16位为事件ID
可以在消息过程函数中这样
LRESULT WINAPI WinMain(HWND hWnd,UINT wMsg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
if((LOWORD)wParam == IDC_BUTTON)
{
SendMessage(hWnd,WM_CLOSE,0,0);
}
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
}
可以在消息过程函数中这样
LRESULT WINAPI WinMain(HWND hWnd,UINT wMsg,WPARAM wParam,LPARAM lParam)
{
switch(msg)
{
case WM_COMMAND:
if((LOWORD)wParam == IDC_BUTTON)
{
SendMessage(hWnd,WM_CLOSE,0,0);
}
break;
default:
return DefWindowProc(hWnd,uMsg,wParam,lParam);
}
}
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
BOOL CxxxDlg::OnCommand(WPARAM wParam, LPARAM lParam)
{
//获得激活的控件ID
UINT CtrlID = LOWORD(wParam);
//处理你的按钮按下消息(通过判断控件ID的范围是不是你指定的控件ID返回)
if( HIWORD(wParam) == BN_CLICKED && CtrlID >= 10000 && CtrlID <= 10050 )
{
CButton * pBtn = (CButton *)GetDlgItem(CtrlID);
if(pBtn != NULL)
{
//调用一个你自己写的共通函数
OnButton(pBtn);
}
return TRUE;
}
{
//获得激活的控件ID
UINT CtrlID = LOWORD(wParam);
//处理你的按钮按下消息(通过判断控件ID的范围是不是你指定的控件ID返回)
if( HIWORD(wParam) == BN_CLICKED && CtrlID >= 10000 && CtrlID <= 10050 )
{
CButton * pBtn = (CButton *)GetDlgItem(CtrlID);
if(pBtn != NULL)
{
//调用一个你自己写的共通函数
OnButton(pBtn);
}
return TRUE;
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
你好,你可以在按钮的父窗口处理消息WM_COMMAND,当按钮被点击时它会以WM_COMMAND向父窗口发送消息。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
liuhaitao334已经给你答案了,还有一个方法就是在LButtonDown中处理按键消息,判断鼠标是不是在你创建的按钮上:主要用到这三个函数:PtInRect,GetClientRect,GetCursorPos
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询