[框架窗体代码全部在内]为何无法生成一个按钮???
//主框架类
class CMyWnd : public CFrameWnd
{
public:
CMyWnd();
~CMyWnd();
CButton *mybtn;
BOOL PreCreateWindow(CREATESTRUCT &cs);
protected:
afx_msg void OnPaint();
DECLARE_MESSAGE_MAP();
};
//应用程序主窗体消息映射
CMyWnd::CMyWnd()
{
mybtn = new CButton;
}
CMyWnd::~CMyWnd()
{
delete mybtn;
}
BOOL CMyWnd::PreCreateWindow(CREATESTRUCT &cs)
{
mybtn->Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(10,40,100,70), this, 1); //这句是网上看的,可是无法显示出这个按钮
return CFrameWnd::PreCreateWindow(cs);
}
BEGIN_MESSAGE_MAP(CMyWnd,CWnd)
ON_WM_PAINT()
END_MESSAGE_MAP()
void CMyWnd::OnPaint()
{
CPaintDC DC(this);
DC.TextOut(50,50,_T("测试程序OnPaint"));
}
-----------------------------------------------------------------
各位大虾帮个忙,小弟刚刚起步~~~!!
还有就是怎么添加这个按钮的单击事件消息呢???请教~~!!!马上给分~
问题点数:30、回复次数:6Top
1 楼striking(庸人自扰)回复于 2006-03-16 21:22:20 得分 10
mybtn->Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,CRect(10,40,100,70), this, 1); //这句是网上看的,可是无法显示出这个按钮
不要放在PreCreateWindow , PreCreateWindow表示窗口还没有建立成功.怎么会创建出按钮呢,
不信你看看它的返回值.
你要映射WM_CREATE, 在OnCreate() 创建.Top
2 楼Gutta(冯大狂)回复于 2006-03-16 21:25:31 得分 0
果然是这样!!
谢谢!!
还有个问题,就是怎么处理这个按钮消息啊????
请教请教~~~马上结帖!!Top
3 楼striking(庸人自扰)回复于 2006-03-16 21:46:56 得分 10
ON_COMMAND( 1, OnButtonClick );//因为你创建按钮的id是1.. 建议改大点的.Top
4 楼striking(庸人自扰)回复于 2006-03-16 21:47:48 得分 0
错了. 是ON_BN_CLICKEDTop
5 楼Mackz(在相互)回复于 2006-03-16 22:33:04 得分 10
刚起步最好学会利用向导生成程序框架。Top
6 楼Gutta(冯大狂)回复于 2006-03-17 11:41:41 得分 0
其实我学习VC已经3年多了,就是断断续续的 。。。
惭愧哦 。。。
给分~!Top




