分享

VC小常识1

 一世的追逐 2013-12-10

1、Dialog中insert控件picture,程序中用循环来显示图片时,需要重写dialog的OnCancel()方法。
 方法中添加上DestoryWindow()函数的调用,同时注释CDialog::OnCancel();。   -->非模态dialog
原因:
 循环显示图片,公用同一个dialog,在显示的第一个图片退出时,dialog创建的对象m_hWnd处于隐藏状态,并未销毁,
 所以再显示第二张图片时,就会报错(wincore.cpp line:639行 源码:ASSERT(pWnd->m_hWnd == NULL);   // only do once)
 

知识点:

模态Dialog,当DoModa()l函数执行中才会有窗口句柄m_hWnd的存在,DoModel函数执行完,系统就会释放窗口句柄m_hWnd,
(类对象不一定此刻释放,但毕竟还是系统来完成);非模态Dialog,当Create后窗口句柄m_hWnd就存在,在需要的时候show出窗口。
它的句柄销毁依靠程序员调用函数DestroyWindow()来完成,类对象销毁必须手动delete。

2、winoc.cpp 345行报错,检查程序,控件处理正常。 那就是编译方式不对,由debug更换为releash就可以了。

3、如果项目中自动添加CanExit()函数,需要在创建项目的时候,勾选上“Automation”项。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多