在mfc中,如何通过对话框中的控件调用OnDraw()函数?
我建立了一个多文档视图框架,我想通过点击一个对话框类中的控件调用ondraw()函数,要求而在点击控件之前,视图中不可以绘制图形,请问怎么实现?谢谢各位。我要是在一个控件...
我建立了一个多文档视图框架,我想通过点击一个对话框类中的控件调用ondraw()函数,要求而在点击控件之前,视图中不可以绘制图形,请问怎么实现?
谢谢各位。
我要是在一个控件函数里面写进在 ondraw()函数,怎么写呢?请个举个例子?
CMyFiledlg:;OnOk()
{
//这里怎么写?怎么写入 ondraw()函数?
CDialog::OnOk()
}
谢谢了 展开
谢谢各位。
我要是在一个控件函数里面写进在 ondraw()函数,怎么写呢?请个举个例子?
CMyFiledlg:;OnOk()
{
//这里怎么写?怎么写入 ondraw()函数?
CDialog::OnOk()
}
谢谢了 展开
9个回答
展开全部
这个你看看多文档程序的执行过程,对你理解程序函数执行过程很有帮助~~
一般你不写代码,默认的话,就是在点击控件之前,视图中不可以绘制图形。
例子:
void CBMP24View::OnDraw(CDC* pDC)
{
CBMP24Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc) //你看看~应该是第一次打开不绘制
return;
// TODO:
CRect rect;
GetClientRect(&rect);
if (!pDoc->bData) 你看看~应该是第一次打开不绘制
return;
long biWidth=pDoc->bInfo->bmiHeader.biWidth;
long biHeight=pDoc->bInfo->bmiHeader.biHeight;
//使图像显示在客户区的正中央
int ox,oy;
if((unsigned long)(rect.Width()) > biWidth)
ox = (rect.Width() - biWidth) / 2;
else ox=0;
if((unsigned long)(rect.Height()) > biHeight)
oy = (rect.Height() - biHeight)>>1;
else oy=0;
//将整个图像或部分显示在客户区
SetDIBitsToDevice(pDC->m_hDC, ox, oy, biWidth, biHeight, 0, 0, 0, -biHeight,
pDoc->bData,pDoc->bInfo,DIB_RGB_COLORS);
}
一般你不写代码,默认的话,就是在点击控件之前,视图中不可以绘制图形。
例子:
void CBMP24View::OnDraw(CDC* pDC)
{
CBMP24Doc* pDoc = GetDocument();
ASSERT_VALID(pDoc);
if (!pDoc) //你看看~应该是第一次打开不绘制
return;
// TODO:
CRect rect;
GetClientRect(&rect);
if (!pDoc->bData) 你看看~应该是第一次打开不绘制
return;
long biWidth=pDoc->bInfo->bmiHeader.biWidth;
long biHeight=pDoc->bInfo->bmiHeader.biHeight;
//使图像显示在客户区的正中央
int ox,oy;
if((unsigned long)(rect.Width()) > biWidth)
ox = (rect.Width() - biWidth) / 2;
else ox=0;
if((unsigned long)(rect.Height()) > biHeight)
oy = (rect.Height() - biHeight)>>1;
else oy=0;
//将整个图像或部分显示在客户区
SetDIBitsToDevice(pDC->m_hDC, ox, oy, biWidth, biHeight, 0, 0, 0, -biHeight,
pDoc->bData,pDoc->bInfo,DIB_RGB_COLORS);
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
添加控件按钮后,点击按钮不是有添加类向导吗,在里面定义ondraw()函数,定义成功后,双击该按钮,会在程序中进入ondrow()函数体,将你原来ondrow()函数中的语句添加进去就行了,试试吧。
追问
这个控件和ondrow()不是一个类,请问在类导向里怎么添加ondraw()函数?
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可以给控件添加一个 bool 变量,初始化的时候false,在绘图之前先检测那个变量的值
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
加一个变量,监视控件是否点击.点击的时候,调用Invalidate
更多追问追答
追问
那ondraw()函数是在创建窗口时就被执行了吗?
追答
恩.创建的时候,就被调用.
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询