mfc c++-一个在MFC对话框程序的PICTRUE控件中绘图的问题

问题描述

一个在MFC对话框程序的PICTRUE控件中绘图的问题
本人目前正在做一个小程序,用于在数据库中读取某个字段,然后根据读取的结果在Pictrue控件中进行绘图(由一个按钮按下的事件驱动)。
原理为这般:
bool型变量m_bIsDraw (默认为false) 用于判断是否为首次程序,如果是第一次打开则执行在OnPaint()函数中drawCircle(void)函数(用于生成直角坐标系和圆形的底图),然后将m_bIsDraw置为true,按键按下的函数中调用void CfindHistoryDlg::drawHistroy(void)(用于读取字段,并生成图形)代码如下:
void CfindHistoryDlg::drawHistroy(void)
{
_variant_t timevarWD;

double dWD;

CPoint cpTemp;
CRect rect;
CWnd* pWnd = GetDlgItem(IDC_STATIC_PICTURE);
pWnd->GetClientRect(&rect);
CDC* pDC = pWnd->GetDC();

this->m_pRecordset.CreateInstance(_uuidof(Recordset));
try{
m_pRecordset->Open(""SELECT * FROM aa""
this->m_pConnection.GetInterfacePtr()
adOpenDynamicadLockReadOnlyadCmdText); //读取数据库
if(!(m_pRecordset->BOF && m_pRecordset->adoEOF)){ //是否为空表
m_pRecordset->MoveFirst();
while(!m_pRecordset->adoEOF){
time = m_pRecordset->GetCollect(""时间"");
if( this->varToString(time) != ""0""){ //时间字段不为0
if((m_pRecordset->GetCollect(""温度"")).vt != VT_NULL){
dWD = (double)m_pRecordset->GetCollect(""温度"");
//以下的两步用于计算数值在坐标中的位置
dWD = this->calcDistance (dWD220);

cpTemp = this->drawPosition(dZnw);
pDC->SetPixelV(cpTempRGB(25500)); //描点
}
}
m_pRecordset->MoveNext();
}

    else{        AfxMessageBox(L""数据表为空!"");    }}catch(_com_error *e){    AfxMessageBox(e->ErrorMessage());}m_pRecordset->Close();m_pRecordset = NULL;this->ReleaseDC(pDC);

}
将其放在OnPaint()的 m_bIsDraw == true 分支
在按钮事件中将 m_bIsDraw 置为true 并调用OnPaint() 函数,但没有任何反应,不知道怎么回事,还请各位大大指正!!!!

时间: 2024-09-06 04:52:32

mfc c++-一个在MFC对话框程序的PICTRUE控件中绘图的问题的相关文章

MFC 对话框Picture Control(图片控件)中静态和动态显示Bmp图片

        最近有同学问我如何实现MFC基于对话框在图片控件中加载图片?其实使用MFC显示图片的方法各种各样,但是还是有些同学不知道怎样显示.以前在<数字图像处理>课程中完成的软件都是基于单文档的程序,这里介绍两种在对话框picthre控件中显示BMP图片的最简单基础的方法.       ~~方法可能并不完美,高手忽略,但是提供一种能运行的方法,希望对刚接触这方面知识的同学有所帮助.可能你觉得文章过于简单或者有些过于详细叙述(点到即可我并不反对),但也为哪些入门同学想想,当初自己也是一头雾

Winform 程序的pictureBox 控件中显示附件图片,通过鼠标单击某个区域能够返回所单击的区域名称?

问题描述 给些提示,相应的解决办法就行,能够提供相关的代码,更好!先谢过啊 解决方案 解决方案二:mark解决方案三:没看见图片呢.解决方案四:是要所单击区域的附件的名称?你一个pictureBox里一个图片.可以通过鼠标的位置来对比.mouseargs.xmouseargs.y解决方案五:同意楼上解决方案六:只能通过事件处理函数的参数来确定位置了.mouseargs.xmouseargs.y解决方案七:恩.必须先明确知道picturebox里的图片被分为那些区域,然后根据鼠标的位置来确定.比如

panel-用API.SetWindowPos方法设置固定位置后,将第三方的应用程序嵌入到Panel控件中。

问题描述 用API.SetWindowPos方法设置固定位置后,将第三方的应用程序嵌入到Panel控件中. 在C# Winfrom项目中,有一个form窗体,一个panel控件. 通过Process.start方法打开第三方的应用程序,将第三方程序嵌入Panel控件中. 用API.SetWindowPos方法改变第三方的应用程序位置以及大小. 目前发现一个问题, 打开第三方的应用程序设置大小及位置,通过获取panel控件的位置可以显示嵌入到Panel控件中,代码如下: API.SetWindow

windows列表框控件中能不能显示一个bitmap位图图片

问题描述 windows列表框控件中能不能显示一个bitmap位图图片 windows列表框控件中能不能显示一个bitmap位图图片?列表框怎么显示bitmap图片? 解决方案 参考:http://www.lxway.com/129985101.htm 解决方案二: Using a Virtual CListCtrl to Display Text and Bitmaps http://www.codeproject.com/Articles/35131/Using-a-Virtual-CLis

vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?

问题描述 vc++在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现? vc++我想在MFC对话框上用程序生成控件(比如Text和Edit控件),求如何实现?(不是用工具条拖动控件到对话框上) 1.用程序生成控件2.控件在对话框上准确定位 求大神指导下 解决方案 一个 CreateWindow() 就能搞定,例子很多,自己找. 解决方案二: MFC我没有研究过,但我想MFC中应该可以调用Win32API吧,可以看看这几个,虽然不是MFC,但是在MFC里想必是可以用的.htt

visual studio-别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中?

问题描述 别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中? 别人写的MFC控件(一个.h一个.cpp)我怎么把这个控件添加到vs的界面中? 能给个步骤吗? 解决方案 resource.h添加控件ID的定义,.rc中添加控件的属性 解决方案二: -.-有这些了就能随意加了, 首先将这两个文件放到项目文件下面,然后打开你的项目工程,右击项目的头文件,将鼠标移动到添加,然后点击添加现有项,选择.h;然后接着点击项目的实行文件,选择.cpp:然后就能使用了

MFC基于对话框模式下使用鼠标在Text Control控件中画图

问题描述 MFC基于对话框模式下使用鼠标在Text Control控件中画图 想在MFC对话框的Text Control控件窗口中用鼠标画图,但是没有反应.我是自己添加了OnLButtonDown和OnLButtonUp函数. void CKdu_CompressDlg::OnLButtonDown(UINT nFlags,CPoint point) { CWnd *pWnd=GetDlgItem(IDC_STATIC_IMG); HWND hwnd=pWnd->GetSafeHwnd(); m

图片加载-怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片

问题描述 怎么在一个对话框中单击一个按钮后在另一个对话框中的picture控件中显示一张bmp格式的图片 我是大一学生,在用mfc做一个员工管理系统,要求在一个对话框的list control 控件中选择一条员工信息,点击一下"显示全部信息"按钮后,弹出一个对话框,这个对话框上的picture控件能显示这个人对应的照片.这个人对应的照片我放在资源文件夹下面.其他我都会,就是照片显示这方面我不知道应该怎么做?各位大神求指教. 解决方案 一个对话框调用另一个对话框的控件值 解决方案二: h

mfc-用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中

问题描述 用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中 我想用MFC写一个程序登陆到学校教务处,把成绩那个页面解析到自己的列表控件中,有没有大神这方面的资料,或者有类似的源代码,给出一点点建议也好-- 解决方案 先用HTML View获取网页内容,再分析内容得到自己想要的信息放到控件中 解决方案二: 发送http请求,winhttp.获取内容.然后解析.再插入ListCtrl. SetItemText