我自己做了一个Edit控件.怎么调用不了呢.

rader2210 2008-11-28 01:49:41
我用ActiveX控件做了个Edit控件,编译没事,但生成后不让调用.请高手指导下.

下面是我添加的代码

还有我想实现支持16进制和字符串类型的输出.该怎么写啊?


void CeditCtrl::OnDraw(
CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
{
if (!pdc)
return;

// TODO: 用您自己的绘图代码替换下面的代码。

CEdit* edit1=new CEdit;
edit1->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(0, 0, 100, 30), this, 1);
CString str;
str="头一次";
pdc->TextOut(0,0,str);
...全文
96 18 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
18 条回复
切换为时间正序
请发表友善的回复…
发表回复
rader2210 2008-11-29
  • 打赏
  • 举报
回复
太谢谢你了 。我才开始自学,很多东西都不知道在哪能查到资料。得到你得热心帮助,我真幸福。
gbjgg 2008-11-29
  • 打赏
  • 举报
回复
不懂,up
qap22 2008-11-29
  • 打赏
  • 举报
回复
不懂,up
ultraedit55 2008-11-29
  • 打赏
  • 举报
回复
不懂,帮顶
qap22 2008-11-29
  • 打赏
  • 举报
回复
不懂,帮顶
authenticationf 2008-11-29
  • 打赏
  • 举报
回复
帮顶
qap22 2008-11-29
  • 打赏
  • 举报
回复
帮顶
qap22 2008-11-29
  • 打赏
  • 举报
回复
不懂,帮顶
qap22 2008-11-29
  • 打赏
  • 举报
回复
不懂,帮顶
qap22 2008-11-29
  • 打赏
  • 举报
回复
不懂,up
Tinary3v0 2008-11-29
  • 打赏
  • 举报
回复
楼主的问题很明显了 既然你要生成一个Edit在ActiveX中,那么这个Edit怎么能放到OnDraw里面去生成呢?

要知道OnDraw的执行频率很高。你在这个里面用临时变量生成Edit,那么基本上视图一有动静就要再生成一个啊,造成你的程序界面更新不过来
产生死机一样的效果。

楼主把代码放到:
int CeditCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)  //用ClassWizard添加WM_CREAT的消息响应函数
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

CEdit* edit1=new CEdit;
edit1->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(0, 0, 100, 30), this, 1);
edit1->ShowWindow(SW_SHOW);

return 0;
}
把OnDraw中的那部分代码清除了。

用上面的这个方法其实已经可以显示Edit了,但是还不太好,因为你用的是临时变量创建的Edit,这对你以后操纵这个Edit带来很多不便。
所以建议在CeditCtrl中添加一个公有变量:
public:
CEdit* edit1;

然后把上面的代码改成:
int CeditCtrl::OnCreate(LPCREATESTRUCT lpCreateStruct)  //用ClassWizard添加WM_CREAT的消息响应函数
{
if (COleControl::OnCreate(lpCreateStruct) == -1)
return -1;

edit1=new CEdit;
edit1->Create(ES_MULTILINE | WS_CHILD | WS_VISIBLE | WS_TABSTOP | WS_BORDER,
CRect(0, 0, 100, 30), this, 1);
edit1->ShowWindow(SW_SHOW);

return 0;
}

这样你在别的地方用到这个Edit的时候就可以直接使用:edit1->SetWindowText();这样的Edit的方法了。
rader2210 2008-11-28
  • 打赏
  • 举报
回复
我就是不明白啊,所以才问大家.
oyljerry 2008-11-28
  • 打赏
  • 举报
回复
为啥不让调用? ActiveX调用是否正确
rader2210 2008-11-28
  • 打赏
  • 举报
回复
通过不了.不知道原因
smaltdd 2008-11-28
  • 打赏
  • 举报
回复
你用activex测试容器测试可以通过吗?

16,548

社区成员

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

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

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