我定义了一个全局按钮对象 CButton cb; 并且在窗体的单击消息中加入以下代码:cb.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1);当我单击窗体之后,在指定的位置上显示出了一个按钮,
可是当我再单击那个按钮后,整个程序都关闭!
我不明白这是怎么回事???
这个按钮的单击事件在哪写???
CRect(10,10,100,30), this, 1);当我单击窗体之后,在指定的位置上显示出了一个按钮,
可是当我再单击那个按钮后,整个程序都关闭!
我不明白这是怎么回事???
这个按钮的单击事件在哪写???
{
cb.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1);
}
可是还是解决不了我单击生成的按钮后程序关闭的情况。
我的主窗体是用 MFC Wizard 向导选择基于对话框生成的
难道生成的按钮默认事件是关闭当前窗体?????
这个按钮的单击事件在哪编写呀????????
但是就找不到那个框架类了;为了能找到框架类,我就要用 MFC Wizard 建立的选的是单文档
可是这样又找不到主窗体来编辑了,更没法住上拖控件。TO:★★★ 们:我是一个初学者,我想我这些问题不至于难到大家吧,还请你们赐教呀。
我还想问一下,这个 ID 值和句柄是不是一个值呀?如果不是一个值那二者有何区别?
再就是我如果要生成很多个按钮,那么还要一个个的设置 ID 值吗?
设不好冲突了怎么办?有没有更好的办法和机制?
* Dialog Box Command IDs
*/
#define IDOK 1
#define IDCANCEL 2
#define IDABORT 3
#define IDRETRY 4
#define IDIGNORE 5
#define IDYES 6
#define IDNO 7
#if(WINVER >= 0x0400)
#define IDCLOSE 8
#define IDHELP 9
#endif /* WINVER >= 0x0400 */// end_r_winuser
#define IDCANCEL 2如果你把ID定义成1,2就跟OK,Cancel按钮一样的结果了,
一般用户ID,消息定义在 WM_USER + n (n=1,2,...)
处理消息在WM_COMMAND
两个参数:
WPARAM wParam
LPARAM lParam;wParam
高位
如果消息来自控件,表示Notification Node (BN_CLICKED...)
如果来自加速键,=1
如果来自菜单, =0
低位表示控件菜单的ID(就是你动态创建时用的ID)
lParam
如果消息来自控件,这个值是发送消息的控件句柄,否则为NULL
CRect(10,10,100,30), this, 1);
注意最后一个参数,1是控件ID,再看看系统参数定义,IDOK的值就是1,就是说你创建了一个“确定”按钮,你说按这个按钮会发生什么事?