mfc-图像处理之MFC如何读取在客户区画的图形数据

问题描述

图像处理之MFC如何读取在客户区画的图形数据

看了杨淑莹的图像模式识别—VC++技术实现,发现她的程序是在画图的时候
用一个10*10矩形框作为画笔的大小,然后用for把数据循环存到*(m_pData+LineBytes*(height-y)+x)=0;里面的
问题:那能不能先用CPen来画图,然后读取像素呢,或者有没有更好的
思路,因为我觉得这样存储有点费劲,谢谢大神们!^_^

解决方案

能不能先用CPen来画图?答案肯定是能,关键是你绘制在哪里?还是要一块内存区域吧,如果是为什么不直接绘制在想要的区域呢。

解决方案二:

不知道你想要绘制成什么样子的,你Pen可以创建一个粗一点的CPen(PS_SOLID, 10, RGB(...))

解决方案三:

怎样读写像素点???我感觉应该先建立一个设备上下文句柄,然后建立一个内存设备句柄,然后把这个图像拷贝到内存中存储起来。

时间: 2024-10-31 05:20:37

mfc-图像处理之MFC如何读取在客户区画的图形数据的相关文章

vs2010 单文档MFC 通过加载位图文件作为客户区背景

实现效果: 这个其实是一个非常常见的功能,大家都会考虑给自己简单的工程做一个背景界面.其实只要在view类中重载OnEraseBkgnd()这个函数就好了. 代码如下: BOOL CdddView::OnEraseBkgnd(CDC* pDC) { // TODO: 在此添加消息处理程序代码和/或调用默认值 CString string("b.bmp"); HBITMAP hbitmap=(HBITMAP)::LoadImage(AfxGetInstanceHandle(),strin

c++-MFC非客户区的刷新及防闪烁问题

问题描述 MFC非客户区的刷新及防闪烁问题 弄重绘标题栏的时候遇到了问题.. 按钮贴图什么的都好了.但是在标题栏写"菜单"项的时候遇到了刷新的问题. "菜单"项我是用pDC->DrawText()写上去的("菜单"是两个字而不是按钮啥的). 希望的效果是实时追踪鼠标的位置,若鼠标指在"菜单"所在矩形区域时就把俩字变色显示 于是我就先把之前写的字覆盖掉再重新写 但是这样就出现闪烁了.. 各位有没有好办法解决一下.. 解决方

MFC的CFile和StdFile读取浮点数有乱码的问题

问题描述 MFC的CFile和StdFile读取浮点数有乱码的问题 请问在用MFC的CFile和StdFile读取浮点数,读取的数据转换16进制不正确,怀疑是有乱码的问题,怎么解决? 解决方案 十六进制本来显示出来就是乱码,贴出你的数据和内存中的数值.

界面-求助:mfc非客户区自绘请求高手指点,不知道该怎么做

问题描述 求助:mfc非客户区自绘请求高手指点,不知道该怎么做 50C 想美化一下界面,查资料说要重绘非客户区,看的晕头转向,麻烦高手给指点一下思路,最好有代码可以参考一下 解决方案 WM_NCPAINT这个就是重绘飞客户区的消息,响应在这个消息在里面绘图就好了. 解决方案二: http://blog.csdn.net/faihtua/article/details/8082264 解决方案三: 参考:VC 轻松实现非客户区按钮http://blog.csdn.net/testcs_dn/art

C++MFC编程笔记day06 MFC向导、MFC绘图类使用

 MFC绘图    MFC绘图类包括绘图设备类和绘图对象类    1 绘图设备类      CDC类-父类是CObject,封装的是一般的绘图设备,例如:显示器,            打印机等.      CWindowDC类-父类是CDC类,封装的是窗口对象,包括客户区和非            客户区.      CClientDC类-父类是CDC类,封装的仍然是窗口,但是只包括客户区.      CPaintDC类-父类是CDC类,封装的是窗口的客户区.但是,它只用           

当文档分割-请问mfc单文档分割窗口后,原来可以显示图形的VIEW函数怎么修改才能让其显示原来发的图形。

问题描述 请问mfc单文档分割窗口后,原来可以显示图形的VIEW函数怎么修改才能让其显示原来发的图形. BOOL CMainFrame::OnCreateClient(LPCREATESTRUCT lpcs, CCreateContext* pContext) { // TODO: 在此添加专用代码和/或调用基类 if(m_splitter.CreateStatic(this,1,2)==NULL) return FALSE; CRect rect; GetClientRect(&rect);

mfc-MFC怎么将客户区变成非客户区

问题描述 MFC怎么将客户区变成非客户区 我用BCG库的停靠窗口在顶部创建了一个窗口,然后隐藏了原来的标题栏,菜单和工具栏,然后我想让在顶部的那个停靠窗口成为新的标题栏形势的非客户区,请问该怎么做,OnNCHitTest改写没用 解决方案 请详细描述你的问题呢.... 解决方案二: 你创建的是什么窗口?CDockablePane?

用C#实现在客户区拖动窗体

当你设计一个应用程序时,或许你希望用户能够通过客户区来拖动窗体,比如:当窗体没有标题栏或创建的是不规则的窗体时,就只有通过客户区来拖动窗体了. 一个发生在我们身边很好的例子就是Microsoft Windows Media Player.Media Player有项功能是根据用户的爱好可以随意换掉外观(换肤),这个时候标题栏就隐藏了,但是你能够通过客户区来拖动窗体. 好了,言归正传,开始我们的旅程吧 首先必须了解Windows的消息传递机制,当有鼠标活动消息时,系统发送WM_NCHITTEST

VC 窗体非客户区的绘制

VC 窗体非客户区的绘制 OnNcPaint(UINT message, WPARAM wParam, LPARAM lParam) . void CSkinAndLangDlg::OnNcPaint(UINT message, WPARAM wParam, LPARAM lParam) { HDC WindowDC = ::GetWindowDC(m_hWnd); // //取得整个窗体矩形 RECT WindowRect; GetWindowRect(&WindowRect); Offset