1200字范文,内容丰富有趣,写作的好帮手!
1200字范文 > MFC开发过程中 自定义的类中做分割窗口的图像显示 GetDC出现问题:function does

MFC开发过程中 自定义的类中做分割窗口的图像显示 GetDC出现问题:function does

时间:2020-05-31 07:22:06

相关推荐

MFC开发过程中 自定义的类中做分割窗口的图像显示 GetDC出现问题:function does

做MFC分割窗口时,其中含有视类CxxVew窗口,含有General Class (自定义的类CMyXX),在CMyXX中使用GetDC时:

CDC* pDC = GetDC();

出现标题中的问题,因为自己没有指定此设备上下文环境是哪个窗口的(没有获取某个窗口的句柄),即编译器不知道在哪个窗口对象中获取DC,且自定义的类又不是从CWnd类派生,所以程序会默认调用Windows Api中的GetDC函数:

WINUSERAPI

HDC

WINAPI

GetDC( HWND hWnd );

Windows Api函数原型中形参必须是某个窗口的句柄,不能为空,所以会出现标题中的错误,那么如何将视类窗口的指针传递给自定义的类中去使用呢?

解决方案:

在自定义的类MyXX.h头文件声明一个CWnd* 指针变量p_WndView,再声明一个函数:void SetWindowWnd(CWnd* pWnd),在cpp文件中实现这个函数:

void CMyXX::SetWindowWnd(CWnd* pWnd)

{

p_WndView = pWnd;

}

在CxxView的头文件中包含MyXX.h这个头文件,且声明一个public的CMyXX的对象变量m_xx,然后在CxxVew.cpp中就可以使用m_xx.SetWindowWnd(this)来传递这个视图窗口的指针到CMyXX中的p_WndView变量中,在MyXX.cpp中就可以在图像显示的函数中使用:

CDC* pDC =p_WndView->GetDC();

获取视类窗口的设备上下文指针,进而获取句柄,接下来的操作就简单了

MFC开发过程中 自定义的类中做分割窗口的图像显示 GetDC出现问题:function does not take 0 parameters?

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。