精华内容
下载资源
问答
  • VC-MFCVC-MFC

    2012-03-03 22:39:28
    VC-MFCVC-MFC
  • MFC VC C++ 网速监控 线程 MFC VC C++ 网速监控 线程 网速监控 v1.2 解决win7无法测ms的问题
  • 文件复制 MFC VC6.0

    2008-12-24 17:49:24
    文件复制 MFC VC6.0文件复制 MFC VC6.0
  • C++ MFC VC 的部分技术源代码 C++ MFC VC 的部分技术源代码C++ MFC VC 的部分技术源代码C++ MFC VC 的部分技术源代码 C++ MFC VC 的部分技术源代码
  • 基于mfc vc 位图查看器

    2010-08-19 16:57:20
    基于mfc vc 位图查看器基于mfc vc 位图查看器
  • 基于mfc vc 的flash播放器基于mfc vc 的flash播放器
  • ffmpeg教程 C++ MFC VC

    热门讨论 2013-10-13 15:16:07
    ffmpeg教程 C++ MFC VC++ ffmpeg入门
  • 文本编辑器 源代码 MFC VC 课程设计 数据结构与算法
  • 五子棋 源码 游戏编程 MFC VC C++

    千次下载 热门讨论 2011-12-27 18:16:25
    有了本资源后,就无需再以五子棋源码等关键字去百度谷歌2011.12.27之前的资源了。 因上传大小的限制,源码和文档分开上传,请查看我上传的其他资源(以五子棋为关键字)
  • 本程序利用vc6.0为平台,读取txt文件数据,然后根据数据画出曲线图。 MFC/VC
  • MFC VC 双缓冲绘图基本原理与实现,详细解释 MFC做了一些时间了,不得不面对 的是在界面上画图的。 当然你可以直接搜索到能用的代码,并且基本能满足要求。不过这样总不是学习的态度。本着学习分享的态度,现做...

    MFC VC 双缓冲绘图基本原理与实现,详细解释

    MFC做了一些时间了,不得不面对 的是在界面上画图的。

    当然你可以直接搜索到能用的代码,并且基本能满足要求。不过这样总不是学习的态度。本着学习分享的态度,现做一些基本的分析吧。

    在MSDN上知道,我们画图的对象都是窗口的DC,WINDOWS的绘图更新时,总是用背景色先填充这个区域,然后才是我们的绘图代码,

    这就是说,如果我们绘图的代码与背景色差别较大,不管我们更新速度多快,总会有种闪烁的感觉。

    要想避免,通常的做法都是双缓冲了,

    具体代码上来了。

    void CXX:DrawPic(CDC* pDC/*目标DC指针*/)

    {//这里面的CRect rect是你要画图的窗口的大小

          CDC memDC;//

          memDC.CreateCompatibleDC(pDC);//创建与目标DC相兼容的内存DC,
          memBitmap.CreateCompatibleBitmap(pDC,rect.Width(), rect.Height());//根据目标DC创建位图,为什么?看后面
          memDC.SelectObject(&memBitmap);//把位图选入内存DC

         CBrush brush;

         brush.CreateSolidBrush(RGB(255,0,0));//建立个红色的画刷给内存DC

         memDC.SelectObject(&brush)///选择这个刷子

         memDC.Rectangle(0, 0, 100, 100)//一个正方形

       //将这个DC的全部内容放入pDC,这样屏幕上才会有图像

        pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(),&memDC, 0, 0,SRCCOPY);

         //结束了 画图不要忘记释放资源,DC是有限的

         memBitmap.DeleteObject();
         memDC.DeleteDC();

    }

     

    现在,我来说说:

    1.内存DC;MSDN上说,内存DC只存在于内存中,当我们使用memDC.CreateCompatibleDC(pDC)建立它的时候,它只是一个单色的长宽各1像素(one monochrome pixel wide and one monochrome pixel high.)的一个显示面。

    2.上面我建立 了个位图,为什么?同样,MS说,一个DC建立后是不能绘图的,你必须给它选择一 个与它高宽对应的位图。于是上面 你可以看到,我用了

    memBitmap.CreateCompatibleBitmap(pDC,rect.Width(), rect.Height());//这个位图是与pDC色彩是一样的,多色

     memDC.SelectObject(&memBitmap);//把位图选入内存DC,

    做到上上面 的要求。并且还达到另一个目的,就是让内存DC成为多色的DC,慢慢体会吧

    3.为了绘图,你还要先个画刷,用来填充绘图区域,于是我用了

      CBrush brush;

         brush.CreateSolidBrush(RGB(255,0,0));//建立个红色的画刷给内存DC

         memDC.SelectObject(&brush)///选择这个刷子

    这3句。然后使用memDC.Rectangle(0, 0, 100, 100)//一个正方形,画了个红色的正方形

     

    4.使用pDC->BitBlt(rect.left, rect.top, rect.Width(), rect.Height(),&memDC, 0, 0,SRCCOPY);

    让屏幕上有图像显示,

    5.最后使用:

    memBitmap.DeleteObject();
         memDC.DeleteDC();

    释放GDI资源。

    这里应该说的是十分清楚的了,如果你没有成功,请联系我。如果发现错误,也欢迎指正。



    另外,也可参照下面的一篇代码:


    BOOL CDataStructureView::OnEraseBkgnd(CDC* pDC)
     
    {
         CRect rc;
         CDC dcMem;
         GetClientRect(&rc);
         CBitmap bmp; //内存中承载临时图象的位图
     
     
         dcMem.CreateCompatibleDC(pDC); //依附窗口DC创建兼容内存DC
         //创建兼容位图(必须用pDC创建,否则画出的图形变成黑色)
         bmp.CreateCompatibleBitmap(pDC,rc.Width(),rc.Height());
         CBitmap *pOldBit=dcMem.SelectObject(&bmp);
         //按原来背景填充客户区,不然会是黑色
         dcMen.FillSolidRect(rc,RGB(255,255,255))
     
         //画图,添加你要画图的代码,不过用dcMem画,而不是pDC;
     
         ......
     
         pDC->BitBlt(0,0,rc.Width(),rc.Height(),&dcMem,0,0,SRCCOPY);
     
         //将内存DC上的图象拷贝到前台
         //绘图完成后的清理
         dcMem.DeleteDC();     //删除DC
         bmp.DeleteObject(); //删除位图
         return true;
         //这里一定要用return true,如果用自动生成的,会调用基类,把画出来的覆盖,就什     么结果也没有了
    }

    展开全文
  • vc_mbcsmfc.exe安装失败 现象: 在vs2013上使用多字节的时候,会提示不支持多字节。这时需要安装微软提供的程序vc_mbcsmfc.exe,但是我在安装的时候,界面一闪而过,安装失败。 解决办法: 这时候,可以参考...

    现象:

    在vs2013上使用多字节的时候,会提示不支持多字节。这时需要安装微软提供的程序vc_mbcsmfc.exe,但是我在安装的时候,界面一闪而过,安装失败。

     

    解决办法:

    这时候,可以参考安装的log日志,一般名称为 dd_vc_mbcsmfc_20200916102931.log类似,可以用Everything搜索dd_vc_mbcsmfc_开头的这个文件,根据log提示解决问题,我的提示信息是C:\WINDOWS\FONTS\msyh.ttc 微软雅黑这个字体有问题,最后我拷贝了其他电脑上的这个文件,问题解决。

    展开全文
  • 一个CTaskDialog类使用的例子 MFC VC 2010

    千次阅读 2010-12-13 10:32:00
    一个CTaskDialog类使用的例子 MFC VC 2010 // TODO: Replace the strings below with the appropriate message, // main instruction, and dialog title CString message("This is an important ...
    一个CTaskDialog类使用的例子 MFC VC 2010

    // TODO: Replace the strings below with the appropriate message,

    // main instruction, and dialog title

    CString message("This is an important message to the user.");

    CString mainInstruction("Important!/nPlease read!");

    CString title("Alert Dialog");

     

    CTaskDialog taskDialog(message, mainInstruction, title,

        TDCBF_YES_BUTTON | TDCBF_NO_BUTTON | TDCBF_CANCEL_BUTTON );

     

    // Setting new information to be able to reuse the dialog resource

    taskDialog.SetWindowTitle(L"New title for the task dialog");

    taskDialog.SetContent(L"New message to show the user.");

    taskDialog.SetMainInstruction(L"Even more important!");

    taskDialog.SetMainIcon(TD_ERROR_ICON);

    taskDialog.SetDialogWidth(300);

     

    // Add a footer

    taskDialog.SetFooterText(L"Footer information for the dialog.");

    taskDialog.SetFooterIcon(TD_INFORMATION_ICON);

     

    // Add expansion information

    taskDialog.SetExpansionArea(L"Additional information/non two lines.",

        L"Click here for more information.",

        L"Click here to hide the extra information.");

     

    // Change the options to show the expanded information by default.

    // It is necessary to retrieve the current options first.

    int options = taskDialog.GetOptions();

    options |= TDF_EXPANDED_BY_DEFAULT;

    taskDialog.SetOptions(options);

     

    taskDialog.DoModal();

    展开全文
  • MFC vc开发过程中出现错误: 错误详细内容如下: error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject' C:\Program Files (x86)\Microsoft Visual Studio 8\VC\atl...
    MFC  vc开发过程中出现错误: 
    错误详细内容如下:
    error C2248: 'CObject::operator =' : cannot access private member declared in class 'CObject' C:\Program Files (x86)\Microsoft Visual Studio 8\VC\atlmfc\include\afx.h 1254
    当点击错误的时候,定位在文件afx.h的1254行,
    protected:
    BOOL m_bCloseOnDelete;
    CString m_strFileName;
    };


    我还以为自己添加的 CString m_strFileName发生错误,最后发现是在下面的操作导致的:
    m_file = NULL;

    定义在CStdioFile m_file;
    去除掉m_file = NULL;就没有了。
    展开全文
  • spin空间经常用到,近期帮客户写一个小程序,需要实现点击spin控件值以0.1增加和减少,兴致勃勃的百度了下,一大把,步骤都很详细,基本都是重载WM_VSCROLL消息,但是出现的问题是不能按指定数值调节,最后又翻了很...
  • MFC VC 中 TreeView 全面解析

    千次阅读 2013-09-12 00:22:19
    通过“FILE->NEW->PROJECTS->MFC AppWizard(EXE)”建立名为VCTREE的工程,在建立过程中选择基于对话框(Dialog based)的应用;将对话框中的默认控件删除,并将所有对话框属性中的Language域设置为Chinese(P.R.C.),...
  • MFC VC中使菜单项变灰

    千次阅读 2013-05-02 20:57:53
    MFC中缺省的习惯是当没有UpdateCmdUI句柄时程序是使能(Enable)菜单,菜单自动变成使能,只要关掉缺省值就可以了,把下面的代码加入你的程序 CMainFrm::CMainFrm { // Other stuff this->m_bAutoMenuEnable ...
  • 1、PreTranslateMessage函数里面 if(pMsg->message == WM_LBUTTONDOWN && pMsg->hwnd == GetDlgItem(IDC_STATIC_1)->GetSafeHwnd()) { //添加响应相关的处理 ...void XXView::OnLB...
  • 通过VC助手修改Dialog类型的类名,在双击添加事件的时候,会遇到问题,显示如下错误: Cannot add new member   经过分析,发现是因为.clw里面还是修改之前的类名, 通过UE等工具替换为新类名,然后关闭之后...
  • 如图所示,程序出现如上所示错误,这个错误的原因是对类初始化,但是没有使用 修改方法是将初始化的类去掉即可 如下代码: XiCV_Image_Processing m_cXiCVObj(768,576); XiCV_Image_Processing CircleObj;...
  • 我们很多的项目仅仅需要最简单的MFC对话框程序就可以了,但是最近的一个项目中需要将基于主对话框程序的项目在程序启动的时候最小化,仅仅需要在托盘中操作隐藏和恢复。 功能需求:1. MFC主对话框程序,开机隐藏主...
  • 基于MFC 6.0 ( Visual C++ )标准对话框的开发模版V2.0 作者:朱一松 (QQ:34544052 mail:song_0962#sina.com) 
  • 一般我们画控件的时候,都是先往dialog贴一个label,看好位置,然后在代码里面把自定义的控件贴到这个label位置。做法如下: CRect rect;  GetDlgItem(IDC_STATIC1)->GetWindowRect(&rect); // 获得该label的位置...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 17,639
精华内容 7,055
关键字:

mfcvc