如何在单文档的窗口中显示控件?

kitling 2003-07-24 02:30:08
我想在单文档的窗口中显示控件,而不把它们放到对话框中,写了如下的程序,在OnDraw()中:

CRect rect;
GetClientRect(&rect);

CTabCtrl Label;
if( !Label.Create( TCS_TABS | TCS_FIXEDWIDTH | WS_VISIBLE,
rect, this, 0x1006) )
{
AfxMessageBox("Label Create Error!");
}

另外为什么msdn上写着:
virtual BOOL Create(
DWORD dwStyle,
const RECT& rect, <---- 但这不能用 &rect ,却只能用 rect ???
...);


谢谢:)
...全文
139 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
Phourm 2003-07-24
  • 打赏
  • 举报
回复
你不能用函数内局部变量来Create,因为函数结果你的局部变量就析构了,所以你什么也看不到
用New或者在用类全局变量不要Create多次,保证在你的父窗口Create后任何时候Create你的控件一次就OK
storein 2003-07-24
  • 打赏
  • 举报
回复
不能放在OnDraw中的,OnDraw在程序运行过程中会执行很多次,因此你的空间也被创建很多次,当然要浪费时间的.也可能导致其他问题,因此在OnCreate中创建.我没有创建TabCtrl,我这里是以个Button的创建:
.h 文件中 定义
CButton m_Button;
.cpp 文件中创建


int CTempView::OnCreate(LPCREATESTRUCT lpCreateStruct)
{
if (CView::OnCreate(lpCreateStruct) == -1)
return -1;

// TODO: Add your specialized creation code here

m_Button.Create(_T("My button"), WS_CHILD|WS_VISIBLE|BS_PUSHBUTTON,
CRect(10,10,100,30), this, 1);



return 0;
}
Motolola 2003-07-24
  • 打赏
  • 举报
回复
用CFormView
kitling 2003-07-24
  • 打赏
  • 举报
回复
我想把一个CTabTrl的控件直接放在单文档窗口里。

但我把上边的程序放在oncreate()中,但还是不显示,是不是还有什么其它的后续操作,才能显示出来。

另外,如果不放在ondraw()中,那么如果挪动窗口时,控件是不是会没了!
blackblue 2003-07-24
  • 打赏
  • 举报
回复
const RECT&的意思是一个RECT常量的引用,你要是用&rect就变成取地址了,当然就不对了

另外你在OnDraw里创建控件不合理,应该在OnCreate函数里创建;你想想每当界面需要重画时,你就创建控件跟着删除,能不慢么?
还有控件变量应该作为类成员变量出现,否则一旦OnCreate函数返回,你的控件就析构了

最后,还应该响应WM_SIZE消息,like this:

void CYourView::OnSize(UINT nType, int cx, int cy)
{
CView::OnSize(nType, cx, cy);

youctrl.MoveWindow(0, 0, cx, cy);
}



}
kitling 2003-07-24
  • 打赏
  • 举报
回复
对不起,忘了说,以上代码运行时,什么控件也没有,而且运行特慢!

16,473

社区成员

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

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

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