内容为:
每一个单文档程序,都固定的有一个CMainFrame类,要产生Button按钮。两种方法:
Way 1:
定义一个CButton类的对象btn。在MainFrm.h里定义一个private:类型的CButton btn;
在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数的return
注意:(1)btn不能放在OnCreate里,否则OnCreate的生命期结束了,就析构了btn了。(2)btn.Create里的第二个参数或上了一个WS_VISIBLE就不用调用btn.ShowWindow(SW_SHOWNORMAL)了。否则需要显示调用ShowWindow。(3)第四个参数之所以可以是this指针,因为它是指向对象,是从CWnd派生出来的,所以匹配。第五个参数随便制定,为int就好。0;前边加上btn.Create("豆豆的按钮",WS_CHILD|WS_VISIBLE,CRect(0,0,100,40),this,123);
运行结果截图:第二个参数或了一个BS_AUTORADIOBUTTON,显示为一个三态选择按钮。
Way
在CLesson3View类上右键Add Member Viarable。也可以在Lesson3View.h里添加private:类型的
CButton btn;注意不是在MainFrm.h 在CLesson3View类上右键选择Add Windows Message Handlers,在New Windows Message/events:里选择WM_CREATE,选择Add Handler,点Edit Existing,看到多了一个Oncreate,在return 0前加代码即可。
//////////////////////////////////////////////////////////////////////////////////////////
way1:
在MainFrm.h里定义
private:
CButton btn1;
CButton btn2;
CButton btn3;
在int CMainFrame::OnCreate(LPCREATESTRUCT lpCreateStruct)函数的return
btn1.Create("开始",WS_CHILD|WS_VISIBLE,CRect(240,5,320,25),this,123);
btn2.Create("暂停",WS_CHILD|WS_VISIBLE,CRect(325,5,405,25),this,124);
btn3.Create("结束",WS_CHILD|WS_VISIBLE,CRect(410,5,490,25),this,125);
运行显示为:
即way2。
可以知道,way1在CMainFrame类中创建的按钮在标题栏下的任务栏处。
way2在view类中创建的按钮在窗户的客户区内。
////////////////////////////////////////////////////////下面为按钮添加处理函///////////////////////////////////////////////////////////////////////////
(1)在窗户的客户区内添加按钮及其响应函数
参考:http://blog.sina.com.cn/s/blog_65bda7120100hfvb.html
第一步:添加一个按钮