ActiveX 点滴

本文介绍了在使用MFC进行编程时的一些实用技巧,包括如何在窗口类中正确创建和管理子对话框,以及如何通过调整OLE对象属性来优化OnDraw函数中的绘制过程,减少画面残留现象。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

CRect rc=rcBounds;;
	if(m_ClientDlg)
	{
		//MessageBox(_T("COcxCzyCtrl::OnDraw   0...."),NULL,0);
		//m_Client_Dlg->RedrawWindow();
		m_ClientDlg->GetWindowRect(&rc);
		int cx,cy;
		GetControlSize(&cx,&cy);
		if(cx!=rc.Width()||cy!=rc.Height())
			this->SetControlSize(rc.Width(),rc.Height());
		return;

	}else
	{
		MessageBox(_T("COcxCzyCtrl::m_ClientDlg==NULL   0...."),NULL,0);
	}

1、在...Ctrl 中的 OnCreate 消息中 创建窗口

if(m_ClientDlg==NULL)
	{
		bool bCreateDlg=FALSE;
		m_ClientDlg=new CVideoDlg(this);
		bCreateDlg=this->m_ClientDlg->Create(IDD_DIALOG_VideoDlg,this);
		TRACE("Create m_Client_Dlg=0x%X",m_ClientDlg);
		m_ClientDlg->ShowWindow(SW_SHOW);


		if(bCreateDlg)
		{
		//	MessageBox(_T("m_ClientDlg->Create   OK ...."),NULL,0);
		}
		else
		{
			MessageBox(_T("m_ClientDlg->Create   error ...."),NULL,0);
		}
	}else
	{


	}

在 OnDraw 函数中 添加如下函数可以防止画面残留痕迹

static const DWORD BASED_CODE _dwOcxCzyOleMisc =
OLEMISC_ACTIVATEWHENVISIBLE |
OLEMISC_SETCLIENTSITEFIRST |
OLEMISC_INSIDEOUT |
OLEMISC_CANTLINKINSIDE |
OLEMISC_RECOMPOSEONRESIZE;




另外要注意设置对话框的属性,显示,子窗口

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值