一个关于MFC的界面问题,调用ReDrawWindow程序被卡死 5C

#ifndef ADD_NOTIFY
#define ADD_NOTIFY
先上代码,
监听类
//ModelObserver.h
class ModelObserver{
public:
virtual void Observer(float process) = 0;
virtual ~ModelObserver(){};
};
#endif

/////////////////////////////////////////////////////
//一个对话框类
#include "ModelObserver.h"
#include "TextProgressCtrl.h"
#define PROCESS_ID (WM_USER + 10)
// CProcessDialog 对话框

class CProcessDialog : public CDialog, public ModelObserver
{
DECLARE_DYNAMIC(CProcessDialog)
public:
//...
virtual void Observer(float process)
{

}
virtual void OverObserver()
{
//指针和进度条的创建就省略了
        int pos = process * 1000;
    m_pProcess->SetPos(pos);
    //就是这里,内部会调用RedrawWindow函数会导致程序卡死
}

private:
CTextProgressCtrl* m_pProcess;
//..

DECLARE_MESSAGE_MAP()

public:
virtual BOOL OnInitDialog();
};

//Model.h建模类
//....
public
void SetOvserv(ModelObserver* modelObserv);
//...

private:
//...
ModelObserver* m_modelObservs;

///////////////////////////////
//Model.cpp
在建模类中有一个线程会调用

ThreadProc()
{
while(flag)
{
m_modelObservs->Observer();
}
}

//大致就是这个样子,每个类单独用都没问题,是想试一下用观察者模式来弄一个进度条通知,其他部分都没问题,就是走到setPos内部的时候刷新窗口整个程序都卡死

1个回答

派生类覆盖以后有没有调用它,造成死循环,这段代码是放在多线程调用的么?

Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
MFC 界面卡死到底为何
现象:程序运行一段时间后,界面卡死 程序开启了一个监听线程: //创建接收信号线程 Thread = AfxBeginThread(GetIOMsgThread, this, THREAD_PRIORITY_NORMAL, 0, 0, NULL); int CFEECARD_MULT...
求助:关于RedrawWindow()的调用出错
是这样子的,想要做一个状态按键,不想用Check Box和Radio Buttonrn实现按下弹起的状态;rnrn先自己添加一个基于CButton的类:CMyButtonTryrnclass CButtonTry : public CButtonrnrn。。。。。。。。rnpublic:rn CButtonTry();rn int m_nBtnFlag;//用来画下陷或突出rn。。。。。。。rn}rnrn然后在我的工程中CDLG1rnrnclass CDlg1:public CButtonrnrn CButtonTry m_buChoose[10];//10个按键rnrn之后我想先试试功能,就在Dlg1里面的一个按键中加入如下:rnvoid CDlg1::OnButton2() rnrn// TODO: Add your control notification handler code herernrn[color=#FF0000]m_buChoose[2].m_nBtnFlag=1;rnm_buChoose[2].RedrawWindow(); [/color]rnrnrnrnrn这样子编译没问题,一点击按键2,就出现错误。不知道为什么,希望告诉指点~
MFC调用外部的程序,外部程序会卡死
功能没影响,就是总是跳出这个来[img=https://img-bbs.csdn.net/upload/201606/28/1467096222_393766.png][/img]rnMFC直接传参,运行程序之后MFC再去读取这个外部程序保存的文件,rnsystem和ShellExecute都一样,有时候一点事都没,有时候就跳出这个,功能上不影响。
MFC 界面卡死问题,用了线程
用的 thread t(func, xx);去执行一个比较耗时的操作,caffe的分类操作。rn单步调试发现逻辑没问题,可以一步一步正确执行。但是执行时界面就会卡死。
关于程序卡死的问题
我的程序,运行一段时间,就会卡死在那里,而出现上面的情况的时间是不定的,又没有错误提示,请问各位有什么办法可以查看得到那里出现错误了,可能是死锁或者其它情况。
关于LayeredWindow的RedrawWindow问题。
对于一个大小是600*600的LayeredWindow,rnrn执行RedrawWindow(hwnd, NULL, NULL, RDW_INVALIDATE);rnrnrn但在窗口响应WM_PAINT里,使用rnrnPAINTSTRUCT ptStr;rnHDC hDC = ::BeginPaint(hwnd, &ptStr);rnrn后发现问题:rnrnptStr.rcPaint里的内容全是0。rnrnrn窗口不加WS_EX_LAYERED属性,ptStr.rcPaint是正确的。rn窗口加了WS_EX_LAYERED属性,ptStr.rcPaint就不正确了。rnrnrn是什么问题?rnrnrn
redrawwindow()
我不知道在调用RedrawWindow()这个函数以后接着会触发哪个消息。rn请大家多指教。
Qt界面动态库被MFC对话框调用
简介:本人学习Qt一个星期了,利用Qt做的仿360界面,然后打包成动态库。 用C++的MFC对话框按钮调用Qt界面动态库,经测试成功。
winform界面卡死问题
具体问题是这样:rnShow一个窗体上有一个TreeView,TreeView的Nodes数据加载时间比较长,所以我想把加载TreeNode的方法单独起一个线程来做,做好了再加载到窗体上,但是现在不管是new Thread还是BackgroundWorker都还是一样会搞的界面卡死.rn代码:rn[code=C#]//主窗体:rnpublic void ShowNewWindow()rnrn TreeForm tf = new TreeForm();rn tf.Show();rn tf.LoadTree();rnrn//子窗体具有一个panle一个treeview,treeview加载的时候显示panle上面有gif动画表示加载中:rnpublic void LoadTree()rnrn treeView1.Nodes.Clean();rn treeView1.Nodes.Add(GetNode());rnrnrnprivate TreeNode GetNode()rnrn //....获得到节点对象的方法,最终return一个TreeNode对象rn[/code]rnrn我做的时候单独把GetNode放在一个线程里去做或者是后台去做,感觉还是会阻塞主线程,毕竟操作了主窗体上的控件,还是占用了资源,没想明白怎么搞才行。rnrn请教下,我应该如何加线程才可以不让主界面避免卡死的状态呢?我的panle应该如何控制才能正常显示出来呢?
C#界面卡死问题
各位高手rn 我在界面1和界面2转换时总出现当按下切换按钮后界面卡死在当前界面,像死机一样,不知该怎么解决,希望各位高手能帮忙解决,谢谢了,以下是我的转换程序,希望各位帮忙修改。rn private void Switch_Click(object sender, EventArgs e)rn rn tryrn rn comm.DataReceived -= comm_DataReceived;//取消注册串口接收事件rn comm.Close();//关闭串口rn rn finallyrn rn rn Canshu_Class.flag = true;rnrn this.Close();//关闭当前界面rn DanMian d1 = new DanMian();rn d1.ShowDialog();//打开新界面rn rn rn
PythonQT界面卡死问题
针对一运行就时间长,有延时的方法就卡死问题,可以用进程、线程、进程池多种办法来解决,让界面进程和时间长有延时的进程分开运行,就可以避免运行时界面卡死的问题下面是我写的demo,供参考# -*- coding: utf-8 -*-"""Module implementing MainWindow."""from PyQt4.QtGui import QMainWindowfrom PyQt4.QtC...
程序被卡死一般什么原因
这个程序中调用多个函数,debug下没有问题,但是运行debug目录下exe文件的时候,程序被卡死。在多个地方输出log信息,有时是在创建指针时出错,有时是在释放指针时出错,保证没有死循环,谁帮忙分析一下,谢谢!
MFC子窗口导致程序卡死
我有2个对话框,想把一个对话框B嵌在另一个对话框A里。rn对话框A中有几个控件,例如按钮,文本框之类的。rn然后在对话框A的初始化位置写:rnm_PicDlg.Create(IDD_PICDLG); //m_PicDlg是对话框B的对象,IDD_PICDLG是对话框B的资源IDrnm_PicDlg.SetParent(this); //设置父类rn其他都不写,运行程序。rn当点击对话框A的控件时,整个程序就卡死了。不知道为什么。
mfc中SetWindowText()卡死程序
[code=c]rnvoid CMFCApplication3Dlg::OnBnClickedButton1()rnrn CString cstr=CString("hello");rn GetDlgItem(IDC_EDIT1)->SetWindowText(cstr);rn while (true)rnrn rn // TODO: 在此添加控件通知处理程序代码rn[/code]rnrn创建一个基于对话框的程序,建了一个edit和一个button,这是button 触发函数,运行后怎么连第一个“hello”都输不出来呢?而且程序会显示无响应。
Redrawwindow()?????
redrawwindow在什么时候用??rn他和Invalidate(). Updatewindow(),有什么区别,有什么特别的用处???rn谢谢大家!!rn
一个MFC界面程序如何触发并调用C程序
lz菜鸟,现有一个MFC程序和数个C程序,C程序是处理信号的,然后将其结果显示在MFC界面上,但是现在不知道如何将它们联系起来,可以在M界面上拖个Button控件,使其能够一按Button时就触发C程序吗?或者是其他的方法吗?rnrn请各位不吝赐教!!
一个MFC界面程序的奇怪问题
编译了一个MFC Dialog的程序,双击执行时,Dialog不出现,内存却不停的增加。等了10分钟,还是没有弹出界面,我确定没有做启动前的准备工作。rn请问这可能是哪些原因造成的?Thanks.
MFC中socket接收程序卡死的问题?
[code=C/C++]rn while(xml_len > 0)rn rn err = pSocket->Receive(buf + i,xml_len,0);rn if(err <= 0)rn break;rn xml_len -= err;rn i += err;rn [/code]比如xml_len的值为461,但是第一次去循环读取的时候只有读到16个字节,那我就继续去读,并把新数据从buf的第16位开始保存下去,但是只能读取第一次的16个字节,接着继续循环就会在Receive那里程序非常卡,是什么原因呢?而且为什么我固定第一次只能读16个,xml_len是461个啊
MFC 解除窗口父子关系 主界面卡死
各位大牛们,请教一个困扰我很久的问题,我有2个窗口,主窗口在主进程,子窗口在子进程,通过SetParent设置窗口的父子关系,当子窗口卡死时,我就解除窗口的父子关系,让主窗口复活,现在问题是主窗口是可以复活了,可是一单击窗口的按钮,比如最大化按钮,主窗口却没有反应了,是怎么回事呢?
MFC写的程序,运行一段时间后界面变白卡死什么原因?
MFC写的程序,程序比较大,没法贴代码,程序里有socket网络通信,有线程,界面还有贴图的bitmap,rn,还有使用了skinH的皮肤插件rn运行一段时间后,程序就变白卡死了,或者有时间就直接一闪程序就消失了,rnrn这一般是什么原因啊?rnrn
关于一个UI卡死的问题
[code=csharp] private void notifyIcon1_MouseClick(object sender, MouseEventArgs e)rn rn if (_stkForm.Count != 0)rn rn MyForm frm=DicForm[_stkForm.Peek()];rn frm.Show();rn MessageBox.Show("asdfasdfsdf");rn rn [/code]rn MyForm frm=DicForm[_stkForm.Peek()];这行我设了个断点,frm能获取到一个窗口,但是就是Show不出来~~~~~点一下notify主窗口就直接卡死。MessageBox.Show("asdfasdfsdf");这句的窗口也弹不出来。但是我再点一下notify,断点又被激活了,说明这个事件又被接收到了,我估计是多线程的问题,请问该怎么找出问题呢?
mfc调用wpf界面
我用wpf做了一个界面,在mfc进行调用,看了网上的例子,都是同一个方法,就是去掉App.xaml,那这样资源就没办法放了,请问还有别的办法吗。还有就是调用时,wpf的动画或者背景颜色会改变。。
调用insertitem后程序卡死
编译程序能正常,但是运行到这段代码的时候会卡住,停在循环中不执行。rn这是对话框的初始化部分rn[code=c]////////客户端////////////////////rnfor(int j=0;j<2;j++)rn rn int i=0;rn theApp.m_pClientSock->Receive(buff,4096);rn CString p(buff);rn CString Menu(buff);rn theApp.m_pClientSock->Receive(buff,4096);rn CString Price(buff);rn m_CaidanList.InsertItem(j,Menu);rn i++;rn rn/*现在这里的j是<2的,能正常显示继续执行,如果j改成<3就不行,我最终希望能用while判断rn包括服务端。有的时候,同样的代码,上一次能显示正常,下一次就显示不正常了,很是疑惑。*/rn//////////////////////////////////////rn//这是客户端rnm_pRs=m_pAdoConnect->Execute((_bstr_t)Temp.Message,NULL,adCmdText);rn for(int j=0;j<4;j++)rn rn CString Menu;rn Menu=m_pRs->GetCollect(_T("Catalogue"));rn pSevSoc->Send(Menu,Menu.GetLength()+100);rn CString Price;rn Price=m_pRs->GetCollect(_T("Price"));rn pSevSoc->Send(Price,Price.GetLength()+100);rn m_pRs->MoveNext();rn [/code]
调用GetOpenFileName()函数,程序卡死
下面是代码,这段代码是从msdn抄的,前面也自己写了几次,跟这段代码几乎没有区别。但要么执行后一点反应都没有,要么就像这段代码一样,程序直接卡死。win7运行的。rn[code=c]OPENFILENAME of;rn memset( &of, 0, sizeof( of ) );rn BOOL rc = FALSE;rn CString strDataRootPath = _T("");rn of.lStructSize = sizeof( of );rn of.hwndOwner = 0;rn of.lpstrFile = strDataRootPath.GetBufferSetLength( MAX_PATH );rn of.lpstrFilter = _T("All files (*.*)\0*.*\0");rn of.nMaxFile = MAX_PATH;rn of.nFilterIndex = 0;rn of.lpstrFileTitle = NULL;rn of.nMaxFileTitle = 0;rn of.lpstrInitialDir = strDataRootPath.GetBufferSetLength( MAX_PATH );rn of.lpstrDefExt = _T("");rn of.Flags = OFN_EXPLORER | OFN_ENABLESIZING | OFN_HIDEREADONLY;rn of.lpstrTitle = _T("Select input data file.");rn of.FlagsEx= OFN_EX_NOPLACESBAR;rnrn rc = GetOpenFileName( &of );[/code]rn麻烦大神看一下什么问题,谢谢!
Qt quick 界面卡死问题
请问各位大神 我最近QT C++ 编写串口接收数据 用QT quick 编写界面 在界面上用rectangle的颜色值变化来说明串口接受数据的变化 可是QT quick编写的界面总卡死 是什么问题呢 我是新手 请大神指点
android 录像界面卡死的问题
我现在线程里面录像哦,移除线程关闭录像之后,屏幕就卡在录像的最后一个画面里面,这是为什么啊 nn、n case R.id.avm_record_igview:n // 录制n if(isRecording)n avm_record_igview.setBackgroundResource(R.drawable.ivideo_stop_record_selector);nn // 开启线程n handler.post(runnable);n isCycle = !isCycle;n else n avm_record_igview.setBackgroundResource(R.drawable.ivideo_start_record_selector);n if(true == isCycle)n avm_record_igview.setBackgroundResource(R.drawable.ivideo_start_record_selector);n stopRecording();n// stopPreview(); n // 移掉线程n handler.removeCallbacks(runnable);n //循环取反n isCycle = !isCycle;n n booleanRecording();n n break;n n n /**n * 停止录像,并保存n */n private void stopRecording() n n if (mMediaRecorder == null)n n return;n n try n mMediaRecorder.stop();n catch (IllegalStateException e) n // TODO Auto-generated catch blockn e.printStackTrace();n n releaseMediaRecorder();n isRecording = !isRecording;n n n // ============================= 释放记录器对象 =========================nn private void releaseMediaRecorder() n if (mMediaRecorder != null) n try n mMediaRecorder.reset(); // 记录器重置n mMediaRecorder.release(); // 记录器释放n mMediaRecorder = null; // 记录器为空nn catch (Exception e) n // TODO Auto-generated catch blockn e.printStackTrace();n n n n n n // ================= 开始线程进行循环录像 ==================n private Runnable runnable = new Runnable() n n @Overriden public void run() n // TODO Auto-generated method stubn try n // 创建录像文件n fileName = System.currentTimeMillis() + ".mp4"; // 文件名 时间戳.mp4n absolutePath = Constants.RECORD_VIDEO_PATH + fileName; // 保存路径 + 文件 n // 在线程中进行录像n while (isRecording)n startRecording(); // 开始录像n if(true == DEBUG)n Log.e(TAG,"startRecording time = "+ System.currentTimeMillis());n catch (Exception e) n Log.e(TAG,"Looper Recording = "+ e);n n // 每次时间到之后重启一下线程n handler.postDelayed(runnable, delayMillis);n n ;
关于一个mfc的程序
这是一个七巧板拼图的代码,先上代码:rn[code=c]rn#includern#includern#includern//拼版类//////////////////////////////////////rn#define MAX_POINTS 4rn#define CHIP_WIDTH 240rn#define DELTA 30rnclass CChip:public CObjectrnrn DECLARE_SERIAL(CChip)rn int m_nType;rn CPoint m_pointList[MAX_POINTS];rn int m_nPointCount;rnpublic:rn CChip() rn void SetChip(int type, POINT *ppointlist, int count);rn void DrawChip(CDC *pDC);rn BOOL PtInChip(POINT point);rn LPCRECT GetRect();rn void MoveTo(CSize offset);rn void Rotation();rn void Serialize(CArchive &ar);rnrn;rnrnIMPLEMENT_SERIAL(CChip,CObject,1)rnvoid CChip::SetChip(int type,POINT *ppointlist,int count) //设置拼图块参数rnrn m_nType=type;rn m_nPointCount=count;rn for(int i=0;iSelectObject(&penNew);rn pbrushOld=pDC->SelectObject(&brushNew);rn pDC->Polygon(m_pointList,m_nPointCount);rn pDC->SelectObject(ppenOld);rn pDC->SelectObject(pbrushOld);rnrnrnBOOL CChip::PtInChip(POINT point) //检测一点是否在拼图块中rnrn CRgn rgn;rn rgn.CreatePolygonRgn(m_pointList,m_nPointCount,0);rn return rgn.PtInRegion(point);rnrnrnLPCRECT CChip::GetRect() //取拼图块的包含矩形rnrn static RECT rect;rn CRgn rgn;rn rgn.CreatePolygonRgn(m_pointList,m_nPointCount,0);rn rgn.GetRgnBox(&rect);rn rect.right++;rn rect.bottom++;rn return ▭rnrnrnvoid CChip::Rotation() //旋转拼图块rnrn CRect rect;rn CRgn rgn;rn rgn.CreatePolygonRgn(m_pointList,m_nPointCount,0);rn rgn.GetRgnBox(&rect);rn double x=rect.left+rect.Width()/2; //计算旋转中心rn double y=rect.top+rect.Height()/2;rn double dx,dy;rn for(int i=0;i>m_nType;rn ar>>m_nPointCount;rn for(int i=0;i>m_pointList[i];rn rn rn rnrnrnrn//文档类//////////////////////////////////////rn#define CHIP_COUNT 7rnclass CMyDoc:public CDocumentrnrn DECLARE_DYNCREATE(CMyDoc)rn CChip m_chipList[CHIP_COUNT];rnpublic:rn void Reset();rn virtual void DeleteContents();rn virtual void Serialize(CArchive& ar);rn;rnrnIMPLEMENT_DYNCREATE(CMyDoc,CDocument)rnvoid CMyDoc::Reset() //初始化拼图块rnrn POINT pointList[MAX_POINTS];rn pointList[0].x=DELTA;rn pointList[0].y=DELTA;rn pointList[1].x=DELTA+CHIP_WIDTH;rn pointList[1].y=DELTA;rn pointList[2].x=DELTA+CHIP_WIDTH/2;rn pointList[2].y=DELTA+CHIP_WIDTH/2;rn m_chipList[0].SetChip(1,pointList,3);rn pointList[0].x=DELTA;rn pointList[0].y=DELTA;rn pointList[1].x=DELTA;rn pointList[1].y=DELTA+CHIP_WIDTH;rn pointList[2].x=DELTA+CHIP_WIDTH/2;rn pointList[2].y=DELTA+CHIP_WIDTH/2;rn m_chipList[1].SetChip(2,pointList,3);rn pointList[0].x=DELTA+CHIP_WIDTH;rn pointList[0].y=DELTA;rn pointList[1].x=DELTA+CHIP_WIDTH;rn pointList[1].y=DELTA+CHIP_WIDTH/2;rn pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].y=DELTA+CHIP_WIDTH/4;rn m_chipList[2].SetChip(3,pointList,3);rn pointList[0].x=DELTA+CHIP_WIDTH/2;rn pointList[0].y=DELTA+CHIP_WIDTH/2;rn pointList[1].x=DELTA+CHIP_WIDTH/4;rn pointList[1].y=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;rn m_chipList[3].SetChip(4,pointList,3);rn pointList[0].x=DELTA+CHIP_WIDTH;rn pointList[0].y=DELTA+CHIP_WIDTH/2;rn pointList[1].x=DELTA+CHIP_WIDTH;rn pointList[1].y=DELTA+CHIP_WIDTH;rn pointList[2].x=DELTA+CHIP_WIDTH/2;rn pointList[2].y=DELTA+CHIP_WIDTH;rn m_chipList[4].SetChip(5,pointList,3);rn pointList[0].x=DELTA+(CHIP_WIDTH*3)/4;rn pointList[0].y=DELTA+CHIP_WIDTH/4;rn pointList[1].x=DELTA+CHIP_WIDTH/2;rn pointList[1].y=DELTA+CHIP_WIDTH/2;rn pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;rn pointList[3].x=DELTA+CHIP_WIDTH;rn pointList[3].y=DELTA+CHIP_WIDTH/2;rn m_chipList[5].SetChip(6,pointList,4);rn pointList[0].x=DELTA;rn pointList[0].y=DELTA+CHIP_WIDTH;rn pointList[1].x=DELTA+CHIP_WIDTH/4;rn pointList[1].y=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].x=DELTA+(CHIP_WIDTH*3)/4;rn pointList[2].y=DELTA+(CHIP_WIDTH*3)/4;rn pointList[3].x=DELTA+CHIP_WIDTH/2;rn pointList[3].y=DELTA+CHIP_WIDTH;rn m_chipList[6].SetChip(7,pointList,4);rnrnrnvoid CMyDoc::DeleteContents() //清理文档:关闭文档、建立新文档和打开文档前调用rnrn Reset();rn CDocument::DeleteContents();rnrnrnvoid CMyDoc::Serialize(CArchive &ar) //系列化:读写文档时自动调用rnrn for(int i=0;im_chipList[i].DrawChip(pDC);rn rnrnrnvoid CMyView::OnLButtonDown(UINT nFlags,CPoint point) //消息响应:用户点击鼠标左键时调用rnrn CMyDoc* pDoc=GetDocument();rn ASSERT_VALID(pDoc);rn for(int i=0;im_chipList[i].PtInChip(point))rn rn SetCapture();rn m_bCaptured=TRUE;rn m_pointMouse=point;rn m_nCurrIndex=i;rn break;rn rn rnrnrnvoid CMyView::OnLButtonUp(UINT nFlags,CPoint point) //释放鼠标左键rnrn if(m_bCaptured)rn rn ::ReleaseCapture();rn m_bCaptured=FALSE;rn rnrnrnrnvoid CMyView::OnMouseMove(UINT nFlags,CPoint point) //移动鼠标左键rnrn if(m_bCaptured)rn rn CMyDoc* pDoc=GetDocument();rn ASSERT_VALID(pDoc);rn InvalidateRect(pDoc->m_chipList[m_nCurrIndex].GetRect());rn CSize offset(point-m_pointMouse);rn pDoc->m_chipList[m_nCurrIndex].MoveTo(offset);rn InvalidateRect(pDoc->m_chipList[m_nCurrIndex].GetRect());rn m_pointMouse=point;rn pDoc->SetModifiedFlag();rn rnrnrnvoid CMyView::OnRButtonDown(UINT nFlags,CPoint point) //按下鼠标右键:旋转拼图块rnrn CMyDoc* pDoc=GetDocument();rn ASSERT_VALID(pDoc);rn for(int i=CHIP_COUNT-1;i>=0;i--)rn if(pDoc->m_chipList[i].PtInChip(point))rn InvalidateRect(pDoc->m_chipList[i].GetRect());rn pDoc->m_chipList[i].Rotation();rn InvalidateRect(pDoc->m_chipList[i].GetRect(),FALSE);rn pDoc->SetModifiedFlag ();rn break; rn rnrnBOOL CMyView::OnPreparePrinting(CPrintInfo* pInfo)rnrn pInfo->SetMaxPage(1);rn return DoPreparePrinting(pInfo);rnrn//主框架类rnclass CMainFrame:public CFrameWndrnrn DECLARE_DYNCREATE(CMainFrame);rnIMPLEMENT_DYNCREATE(CMainFrame,CFrameWnd)rn //应用程序类rn#define IDR_MAINFRME 128rnclass CMyApp:public CWinApprnrnpublic:rn virtual BOOL InitInstance();rn DECLARE_MESSAGE_MAP()rn ;rnBEGIN_MESSAGE_MAP(CMyApp,CWinApp)rn ON_COMMAND(ID_FILE_NEW,CWinApp::OnFileNew)rn ON_COMMAND(ID_FILE_OPEN,CWinApp::OnFileOpen)rn ON_COMMAND(ID_FILE_PRINT_SETUP,CWinApp::OnFilePrintSetup)rnEND_MESSAGE_MAP();rnBOOL CMyApp::InitInstance()rnrn CSingleDocTemplate* pDocTemplate;rn pDocTemplate=new CSingleDocTemplate(rn IDR_MAINFRAME,rn RUNTIME_CLASS(CMyDoc),rn RUNTIME_CLASS(CMainFrame),rn RUNTIME_CLASS(CMyView));rn AddDocTemplate(pDocTemplate);rn CCommandLineInfo cmdInfo;rn ParseCommandLine(cmdInfo);rn if(!ProcessShellCommand(cmdInfo))rn return FALSE;rn m_pMainWnd->ShowWindow(SW_SHOWMAXIMIZED);rn return TRUE;rnrnCMyApp theApp;rn[/code]现在程序是能运行但是一旦点击就报错 希望能帮忙解决一下 谢谢
写的程序卡死(实际运行,只是界面假卡死)
用C++ builder写了程序,连接了数据库。在程序一行一行读数据(数据量很大,11万行)的时候,如果点击界面就卡死。实际程序还在继续读数据,如果数据读完就不卡了。咋解决?
一个解压程序(界面使用mfc,调用7zip命令)
选择解压文件和,解压目录,点击解压按钮进行解压(调用7-Zip命令)
MFC界面二十四点程序
本程序可以找到除了除法运算之外所有可能的24点运算,能够提供人工、自动产生数据两种功能。缺点在于没有纸牌变换
求MFC界面程序
输出一个树形图,二叉树rn要求可以改变树节点的数据rnrn正在学MFC,哪位帮帮忙,把工程代码传到我邮箱gypsydang@sina.comrnrn谢谢啦!!!
MFC机器人界面程序
机器人监控界面程序,使用MFC编写,具有很好的通用性
c++ MFC界面程序
一个人机交互式,界面形式的的操作界面,可自行完成机构分析与凸轮曲线的生成
MFC 程序隐藏界面
最近在整合相机和数据发送程序, 由于两个程序都用到了socket编程, 考虑到之前一次整合相机和蓝牙程序的时候, 两个socket只能有一个工作的情况(至于为什么会是这种情况, 到现在还是没有能够弄明白), 于是这次采用IPC 通信, 我们采用的是命名管道。 带来一个问题, 我们启动另一个exe实际上是作为服务使用的, 本来应该是写成控制台程序比较好, 但是, 因为这个程序一开始我们已经写好了,
一个关于在MFC下调用API函数的问题
我用MFC编了一个程序,里面要调用到很多自己编的程序,而我的程序里又包含了很多API函数,是不是只要把我的头文件.h和源文件.cpp加入工程就行了,在头文件里是不是要写清楚API函数的来源,如:#include " ",这些API函数的来源可以怎样更好地找呢?是不是还有其他步骤要做呢?
一个关于在MFC下调用web service的问题
我用C#做了一个WEB Service服务,返回一个字符串数组。rn函数原型为:string[] GetClassInfo1(string input)rnrn然后通过MFC来调用这个服务。现在问题出在我用MFC来调用这个服务只能得到返回值中的第一个数组的值,其它的元素内容全不对。请教各个高手。我该怎么做才能得到返回的这个数组的所有值。rnrn//很奇怪,我的WEB SERVICE只需要传入一个参数,但到了MFC中引用以后就需要我给出三个参数。一个当然是原函数需要的字符参数,第二个我想应该是返回值要存在什么地方的参数(为BSTR**类型),第三个参数我就有点搞不明白了,是一个int*类型的参数。rnrn下面是我在MFC中写的调用代码,请指点:rnrn BSTR bstrInpute = CComBSTR("$|$");//定义一个调用WEB Service所需的传入参rn BSTR *t[100];//定义接收返回值的数组指针rn int n = 100;rn int *pn=&n;rn HRESULT hr = GetTreeService.GetClassInfo1(bstrInpute,t,pn);rnrn最后我定义的t这个BSTR数组里面只有第一个元素的值正确,其它都全部为错误。请问各位,我该怎么做才对?rn在线等,谢谢!rnrn
[MFC]关于调用的一个小问题
我在基于对话框的程序上需要添加系统时间,于是调用时间函数rnCTime t;rnt.GetCurrenttime();rn程序没有在我的特定位置显示出时间,而当我把上述代码改成这样:rnCTime t=CTime::GetCurrentTime()rn成功显示,这是为什么????两者的细微区别请高手指点rn
UI界面卡死
加上timer后,UI界面就卡死,咋回事?[img=https://img-bbs.csdn.net/upload/201902/22/1550823859_169357.png][/img][img=https://img-bbs.csdn.net/upload/201902/22/1550823868_400047.png][/img]
eclipse卡死在开始界面
删除.metadata文件夹即可
WPF界面卡死
Wpf中使用WindowsFormHost承载SuperMap控件时遇到一个比较严重的问题,点击按钮用supermap自带的接口生成等高线,等高线生成之后界面就会卡死,按钮关联的代码正常返回,会是什么问题呀?期待高手答复,先行谢过。rn
相关热词 c# 线程结束时执行 c# kb mb 图片 c# 替换第几位字符 c#项目决定成败 c# 与matlab c# xml缩进 c#传感器基础 c#操作wps c# md5使用方法 c# 引用父窗口的组件