如何在CFORMVIEW中创建一个控件

xiapingsheng 2010-08-19 03:43:37
原以为跟DIALOG一样,
在.h中
CButton *pButton;
在.cpp中
pButton = new CButton;
pButton->Create( _T( "Button" ), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
CRect( 80, 180, 50, 50 ), this, 999 ); //999 is the ID
pButton->ShowWindow( SW_SHOW );

上面的代码在DIALOG中没有问题,可以看的见button,但是在CFORMVIEW的OnInitialUpdate函数中加入后,界面上没有任何反应。
我的目标是要在界面上动态的创建10x3个自已定义的控件,本来想通过计算位置来实现,但是在OnInitialUpdate里,GetClientRect和GetWindowRect返回都是0,0,0,0
该怎么整啊,
...全文
146 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
wltg2001 2010-08-19
  • 打赏
  • 举报
回复
我试了一下,在OnCreate中没有问题,不过要改一下:
pButton->Create( _T( "Button" ), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
CRect( 0, 0, 50, 50 ), this, 999 ); //999 is the ID
xiapingsheng 2010-08-19
  • 打赏
  • 举报
回复
楼上,谢谢!
schlafenhamster 2010-08-19
  • 打赏
  • 举报
回复
CRect( 80, 180, 50, 50 )//left,top,right,bottom 右《 左 ?
CRect( 80, 180, 80+50, 180+50 )
lonelyhacker 2010-08-19
  • 打赏
  • 举报
回复

void CMy11View::OnInitialUpdate()
{
CFormView::OnInitialUpdate();
GetParentFrame()->RecalcLayout();
ResizeParentToFit();

CButton *pButton;
pButton = new CButton;
pButton->Create(_T( "Button" ), WS_CHILD | WS_VISIBLE | BS_PUSHBUTTON,
CRect( 0, 0, 100, 100 ), this, 999 ); //999 is the ID
pButton->ShowWindow(SW_SHOW);

}


你的CRect不对。
xiapingsheng 2010-08-19
  • 打赏
  • 举报
回复
不行啊
MFC怎么就这么痛苦呢
wltg2001 2010-08-19
  • 打赏
  • 举报
回复
上面的代码在DIALOG中没有问题,可以看的见button,但是在CFORMVIEW的OnInitialUpdate函数中加入后,界面上没有任何反应。
========
创建的代码应该没问题,应该是代码加的位置不对吧。
你在CFORMVIEW类的WM_CREATE消息的处理函数OnCreate中创建试试

15,979

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 界面
社区管理员
  • 界面
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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