一个基本的窗体,有一个对话框,如何对对话框中的按钮写单击事件呢?(有代码)

lzxlzx777 2009-09-08 08:41:18
一个基本的窗体,有一个对话框,如何对对话框中的按钮写单击事件呢?(有代码)
我建一个 win32 application 工程,是 hello world 的那种,里面有一个对话框,在添加一个按钮,
我想往里的写事件,不知如何写。
以前在vb中,双击按钮就可以写单击事件,但是vc中好象要写回调函数吧。
如何写呢?
系统给的默认的回调函数为:


// Mesage handler for about box.
LRESULT CALLBACK About(HWND hDlg, UINT message, WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG:
return TRUE;

case WM_COMMAND:
if (LOWORD(wParam) == IDOK || LOWORD(wParam) == IDCANCEL)
{
EndDialog(hDlg, LOWORD(wParam));
return TRUE;
}
break;
}
return FALSE;
}

大家帮我改一下,按钮的单击事件如何加入呢?
...全文
119 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
l181870134 2009-09-08
  • 打赏
  • 举报
回复
首先你要创建一个回调函数 CALLBACK AboutDlgProc (HWND, UINT, WPARAM, LPARAM) ;
然后在你点击菜单中调用对话框下 添加代码 DialogBox函数
static HINSTANCE hInstance ;

switch (message)
{
case WM_CREATE :
hInstance = ((LPCREATESTRUCT) lParam)->hInstance ;
return 0 ;

case WM_COMMAND :
switch (LOWORD (wParam))
{
case IDM_APP_ABOUT :
DialogBox (hInstance, TEXT ("AboutBox"), hwnd, AboutDlgProc) ;
break ;
}
return 0 ;
然后添加函数
BOOL CALLBACK AboutDlgProc (HWND hDlg, UINT message,
WPARAM wParam, LPARAM lParam)
{
switch (message)
{
case WM_INITDIALOG :
return TRUE ;

case WM_COMMAND :
switch (LOWORD (wParam))
{

case IDTEXT:
break;
case IDOK :
case IDCANCEL :
EndDialog (hDlg, 0) ;
return TRUE ;
}
break ;
}
return FALSE ;
}
纯手工操作 用MFC比较方便些
  • 打赏
  • 举报
回复
鼠标右键添加事件处理程序->然后添加BN_CLICKED消息类型->然后我建议你去看下孙老师的视频教程...很详细的说...http://sunxin.org/video/vc.htm
gyang_pinner 2009-09-08
  • 打赏
  • 举报
回复
你这是sdk程序,不能双击鼠标来做吧,直接在对话框的窗口过程中处理消息Wm_command!可以去查msdn
liujin1234 2009-09-08
  • 打赏
  • 举报
回复
你没有新建这个对话框的类,所以没有出现,你双击下这个对话框,然后会让你创建一个类,创建完以后,就可以双击按钮出现消息相应函数了
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
[Quote=引用 6 楼 liuharris 的回复:]
你建的资源是不是修改过啊,有问题啊。你重新建一个对话框试一下还有没有同样的问题

[/Quote]
就是新建的,没修改过呀?
几台机器都试了,双击按钮不是出现写代码的界面呀?
liuharris 2009-09-08
  • 打赏
  • 举报
回复
你建的资源是不是修改过啊,有问题啊。你重新建一个对话框试一下还有没有同样的问题
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
为何我双击不会出现写代码的窗口呢?
lzxlzx777 2009-09-08
  • 打赏
  • 举报
回复
liujin1234 2009-09-08
  • 打赏
  • 举报
回复
在vc中也是双击按钮就能出现一个函数,然后写代码就是了,不明白你怎么搞的那么复杂
zoulie 2009-09-08
  • 打赏
  • 举报
回复
先create按钮,
然后在你的回调函数里面响应COMMAND消息,
liuharris 2009-09-08
  • 打赏
  • 举报
回复
一样,双击按钮就可以添加单击消息函数
或者在View->Classwizard
选择你的对话框类名(class name),在Object IDs:找到你按钮的ID添加COMMAND确定就可以

16,551

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧