大家好。我是菜鸟.
我在做一个对话框,实现绘图功能,自己新建了一个类Drawdata,该类中有公共变量CWnd *ddwnd,CDC memdc,bkdc
和操作函数SetPic(int nlDDlgltem),Draw()函数
SetPic函数中使用了语句:ddwnd=GetDlgItem(nlDDlgltem);
Draw函数中有语句:memDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,&bkDC)0,0,SRCCOPY);
问题一:我在对话框类头文件中定义了该类的变量,但是在对话框的某个控件函数中调用SetPic(IDC_PIC1)时运行到ddwnd=GetDlgItem(nlDDlgltem);弹出错误,调试发现好像是值没有传递进去导致内存泄露。
问题二:在程序运行Draw函数的memDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,&bkDC)0,0,SRCCOPY);处时也出现类似错误,调试发现好像&bkDC没有传递进去(bkDC前面已经完成了背景绘图)。
希望各位大侠帮帮忙。
我在做一个对话框,实现绘图功能,自己新建了一个类Drawdata,该类中有公共变量CWnd *ddwnd,CDC memdc,bkdc
和操作函数SetPic(int nlDDlgltem),Draw()函数
SetPic函数中使用了语句:ddwnd=GetDlgItem(nlDDlgltem);
Draw函数中有语句:memDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,&bkDC)0,0,SRCCOPY);
问题一:我在对话框类头文件中定义了该类的变量,但是在对话框的某个控件函数中调用SetPic(IDC_PIC1)时运行到ddwnd=GetDlgItem(nlDDlgltem);弹出错误,调试发现好像是值没有传递进去导致内存泄露。
问题二:在程序运行Draw函数的memDC.BitBlt(rect.left,rect.top,rect.right,rect.bottom,&bkDC)0,0,SRCCOPY);处时也出现类似错误,调试发现好像&bkDC没有传递进去(bkDC前面已经完成了背景绘图)。
希望各位大侠帮帮忙。
解决方案 »
- 【SOS】windows server 2003 网络通信程序问题
- COM Object传出的BSTR指针为什么在JScript或VBScript中不可见?
- 请问如何设定一radiobutton组中的某一radiobutton的选中状态?
- 要写一个操作扫描仪的程序,有没有人有经验,帮帮我2
- 怎样用VC6实现访问远程计算机的各种系统信息(要求无客户端)
- 类继承问题
- 如何给分,如何赚分,如何结贴
- 麻烦大家!!如何改变控件的缺省显示!!
- 如何从odbc数据库连接与sqlserver中,对于sp的返回值用什么方法能得到
- VC到底在学什么?
- 呵呵,又来请教大神了!有关《定制资源管理器的外观》问题。
- 怎么用VS2008进行UI界面设计 给个简单的案例
这个资源不属于Drawdata所在的类,应该先加载资源,然后把句柄传过去问题二
memDC.BitBlt
不要使用资源,因为不是在类所在的窗口绘画,用句柄,窗口的句柄
谢谢。问题解决了。
还有个问题要问大神
我继承了一个CStatic类,这个类主要是用来实现Picture控件功能,而且是动态创建的。
现在需要在双击该Picture时,弹出非模态对话框SetPictureDialog来设定参数。因此用到Dialog类的Create函数,该函数需要CWnd *pParent作为参数。可是CStatic类如何得到自身的CWnd类句柄呢?(这个CStatic是动态创建的).谢谢
如果用this作为参数传入的话,调试的时候显示该句柄为0x00000000
SetPicDialog->Create(IDD_SETAXIS,this)