非模态对话框内绘图问题
新建了一个对话框,在里面自绘图形了,使用模态对话框没事,里面有定时器想实现动态曲线,使用模态对话框有的时候点出来容易崩溃,现在想改成非模态对话框,为啥会出现非定义的类型


void Ccurve::addtaxis(int data,int *path) //data为画图数据的帧数
{
//内存绘图相关
pWnd1 = GetDlgItem(IDC_STATIC_view);//控件ID
pDC1=pWnd1->GetDC();
pWnd1->GetWindowRect(&rect1);//rc为控件的大小
W=rect1.Width()-50;
H=rect1.Height();
m=H/40;
bmp1=new Bitmap(W+50-2,H-1); //内存位图H
Pen pen(Color(0,0, 0), 3);//边框粗线
Pen spen(Color(0,0, 0), 1);//边框细线
Gdiplus::Font myFont(L"Arial", 8);
SolidBrush brushB(Color(255,0,0,0));
Graphics graphics(bmp1);
HatchBrush newBrush( HatchStyleCross, Color(2555, 255, 255, 255), Color(255, 255, 255,255));//白色
graphics.FillRectangle(&newBrush, 0, 0, rect1.Width(),H);//给画图区域填充白色背
for(int i=0;i<25;i++)
{
graphics.DrawLine(&spen,W*i/24+40,0,W*i/24+40,H); //竖细线
if(i%4==0)
graphics.DrawLine(&pen,W*i/24+40,0,W*i/24+40,H); //纵向粗线
}
for(int j=1;j<=400;j++)
{
if(0==(deepth- data+j)%10) //整数米的位置
{
graphics.DrawLine(&spen,40,H*j/400,W+40,H*j/400); //横细线
if((deepth- data+j)%100==0) //十米整的位置
{
graphics.DrawLine(&pen,40,H*j/400,W+40,H*j/400); //横粗线
WCHAR buf[160];
wsprintfW(buf, L"%d", (deepth- data+j)/10); //注意是反图,上面数字大,下面数字小,+40是因最开始一屏是空的,附加上去没用
graphics.DrawString(buf, -1, &myFont, PointF(0,H*j/400-10), &brushB); //每一个格十米,添加纵向坐标数据
}
}
}
addcurve(graphics , pen0,0,path,data);
addcurve(graphics , pen1,1,path+1,data);
addcurve(graphics , pen2,2,path+2,data);
addcurve(graphics , pen3,3,path+3,data);
addcurve(graphics , pen4,4,path+4,data);
addcurve(graphics , pen5,5,path+5,data);
addcurve(graphics , pen6,6,path+6,data);
addcurve(graphics , pen7,7,path+7,data);
addcurve(graphics , pen8,8,path+8,data);
addcurve(graphics , pen9,9,path+9,data);
addcurve(graphics , pen10,10,path+10,data);
addcurve(graphics , pen11,11,path+11,data);
Graphics gr(pDC1->m_hDC);
gr.DrawImage(bmp1,1,1,0,0,W+50,H-2,UnitPixel);
ReleaseDC(pDC1); //释放DC;
delete bmp1;
bmp1 =NULL;
}
...全文
相关推荐
MFC Halcon混编 BUTTON改背景等
包括了MFC中如何更改BUTTON背景; BYTE*的图片转换成HObject; 非模态对话框的创建; Halcon MFC移植技术
ObjectArx创建指定块
ObjectArx基于CAD二次开发 根据用户输入的块名以及拾取的实体创建指定块! 采用MFC非模态对话框!
MFC单文档弹出非模态对话框绘图
利用MFC实现单文档菜单响应,生成并显示非模态对话框,并对其进行实时地销毁,对话框还实现了绘图的功能(画直线),一例多用,自己花了一上午搞出来的
MFC创建模态对话框和非模态对话框的方法
在MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box)。本文对此分别简述其创建方法。 一、模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送。 点击模态对话框中的OK按钮,模态对话框会被销毁。 创建一个模态对话框的代码如下所示: //创建一个模态对话框 CTestDialog td; td.DoModal(); 其中CTestDialog为我自己所新建的和一个对话框资源相关联的对话框类。 可以创建一个布局模态对
MFC多线程创建非模态对话框(防止一闪而逝)
主对话框单击事件里使用多线程创建对话框B,正常情况见B对话框都是闪现一次,无法长期停留。本代码利用MSG防止了此现象的发生,适合初学多线程的新手。


图形处理/算法
