none
MFC 调用ocx显示白框 RRS feed

  • 问题

  • 刚学mfc,想把以前用vb做的一个工具在mfc上再实现一次,工具需要调用几个ocx界面

    但是我画到 mfc上控件只显示一个白框,我mfc应用程序创建时有勾选 ACtiveX 容器,为什么在设计时画的OCX界面都不白框呢.试过好多个ocx 不管理是系统自带的 TABCTL32.ocx 我觉得这个选项卡,比MFC 自带的Tab 好用多了,自带的在设计时都不能编辑选项页,只能用添加对话框的方式 

    还是调用我自己写的MFC OCX都是显示白框,我在VB6上测试ocx在设计时画好就能看到界面元素了,为什么MFC的不行呢?是不是我哪设置有误,请高手指点,

    第一次发贴,如发错版块.请告知,谢谢合作!

    2015年8月4日 1:45

全部回复

  • 我用MFC ACtiveX 向导生成一个OCX模板,按网上教程做了一个窗口抓取的ocx.但是放到MFC应用程序上测试,运行时,这个图片框竟然不能显示,图片框的显示属性已经设置为True ,这个窗口抓取的ocx我已经做了3遍了.第一遍 因为添加了对话框资源,造成添加的ocx事件不响应,死活找不到原因.又重做了一次,发现只能在对话框资源事件里面调用ocx的事件才能响应,不知道这个方法是不是唯一,或者是有其它更好的办法,第二遍做完后,在mfc应用程序上画控件显示白框,找不到原因.以为是我代码哪有问题,又重做一次.结果发现连系统自带的ocx画上去也是显示白框.现在的问题是我重做的ocx界面在运行时图片框不显示,只有鼠标移到上面才能显示,因为我有添加鼠标事件 按下, 弹起,移动.都会动态改变图片框的位图.

    现在搞不清楚为什么只有需要用到图片框才显示,不操作的时候就看不到呢?请高手指点一下.为了这个ocx搞了几天了,还做不出来

    • 已合并 Shu 2017 2015年8月5日 3:13 duplicate
    2015年8月4日 1:56
  • 您好,能把教程的链接发给我们看看吗,也许结合代码我们能更好的理解你的问题。请问是什么样的白框?这种吗?

    字丑见谅。这种白框可能就是你没有初始化这个控件的原因吧,比如一个webbrowser activex,用用Navigate或Navigate2函数来显示网页,不然就是白框。

    上面的一个圆形控件是个简单的例子,在OnDraw函数里画个圆:

    void CTestCtrl::OnDraw(	CDC* pdc, const CRect& rcBounds, const CRect& rcInvalid)
    {
    	if (!pdc)
    		return;
    
    	// TODO: Replace the following code with your own drawing code.
    	pdc->FillRect(rcBounds, CBrush::FromHandle((HBRUSH)GetStockObject(BLACK_BRUSH)));
    	pdc->Ellipse(rcBounds);
    }

    没有你的代码也不知道你的是什么情况啊。

    Shu


    We are trying to better understand customer views on social support experience, so your participation in this interview project would be greatly appreciated if you have time. Thanks for helping make community forums a great place.
    Click HERE to participate the survey.


    • 已编辑 Shu 2017 2015年8月11日 1:32
    2015年8月5日 5:57
  • http://blog.csdn.net/asanscape/article/details/2140176

    这个是教程链接

    是设计时显示白框,设计时怎么初始化呢?

    代码我不知道要怎么上传,第一次用这个论坛

    2015年8月10日 14:31