SDI中,添加了画图菜单,但是OnDraw为什么不响应?

wcc_627 2010-07-17 04:41:41
在OnDraw函数中添加了如下代码:
if(temp==1)
pDC->TextOut(50,250,"Hello,World!");
if(temp==2)
pDC->Pie(220,200,400,380,380,270,240,220);


添加的菜单响应函数
void CTest2_1_3View::OnText()
{
temp=1;
}

void CTest2_1_3View::OnDrawPicture()
{
temp=2;

}
目的就是为了实现按 Text菜单时显示一行文本,按Draw菜单时画个扇形,编译没出错,可是运行后不管点那个菜单都没有反应,不显示文本也不画扇形,请教大家这是为什么?(temp在头文件中定义为int型)
...全文
152 5 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
dahaiI0 2010-07-17
  • 打赏
  • 举报
回复
要用EnableMenuItem就添加下面一行:
CMainFrm::CMainFrm
{
m_bAutoMenuEnable=FALSE;
}
向立天 2010-07-17
  • 打赏
  • 举报
回复
你这菜单是弹出菜单么?
如果不是应该在相应菜单项的ON_UPDATE_COMMAND_UI消息里设置
wcc_627 2010-07-17
  • 打赏
  • 举报
回复
还想再问一句,我想在点了Text菜单后,该菜单变成灰色不可用,可是用下面的语句总是出现异常,请教大家这是为什么
CMenu menu;
menu.EnableMenuItem(ID_TEXT,MF_GRAYED);
wcc_627 2010-07-17
  • 打赏
  • 举报
回复
可以了,谢谢谢谢!呵呵
jyz395139875 2010-07-17
  • 打赏
  • 举报
回复
void CTest2_1_3View::OnText()
{
temp=1;
}

void CTest2_1_3View::OnDrawPicture()
{
temp=2;

}

换成
void CTest2_1_3View::OnText()
{
temp=1;
Invalidate(TRUE);
}

void CTest2_1_3View::OnDrawPicture()
{
temp=2;
Invalidate(TRUE);
}

16,548

社区成员

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

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

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