Click here to Skip to main content
15,917,645 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
QuestionHow to update the screen continuously when I keep the key pressing [modified] Pin
followait16-Nov-07 17:41
followait16-Nov-07 17:41 
QuestionRe: How to update the screen continuously when I keep the key pressing Pin
Hamid_RT16-Nov-07 21:04
Hamid_RT16-Nov-07 21:04 
AnswerRe: How to update the screen continuously when I keep the key pressing [modified] Pin
followait17-Nov-07 0:52
followait17-Nov-07 0:52 
GeneralRe: How to update the screen continuously when I keep the key pressing Pin
Nelek18-Nov-07 22:09
protectorNelek18-Nov-07 22:09 
GeneralRe: How to update the screen continuously when I keep the key pressing Pin
followait19-Nov-07 3:40
followait19-Nov-07 3:40 
GeneralRe: How to update the screen continuously when I keep the key pressing Pin
Nelek19-Nov-07 21:44
protectorNelek19-Nov-07 21:44 
GeneralRe: How to update the screen continuously when I keep the key pressing Pin
followait20-Nov-07 1:40
followait20-Nov-07 1:40 
QuestionDifferent displays on two computers with same screen resolution. [modified] Pin
followait16-Nov-07 16:57
followait16-Nov-07 16:57 
It is normal on my computer with ATI7500,
but not the the customer's with Nvidia6200LE.
The resolutions are the same, 1024*768.

The problem occurs when I change the parameters in
SetWindowExt,SetWindowOrg,SetViewportExt,SetViewportOrg

Here is code of the function OnPaint. Any Bug?

<br />
void CChildView::OnPaint() <br />
{<br />
	CPaintDC dc(this); // device context for painting<br />
	<br />
	// TODO: Add your message handler code here<br />
	if (m_CntTotalRc==0) return;<br />
	<br />
	CRect rt;<br />
	GetClientRect(&rt);<br />
<br />
	CString SqlCmd;<br />
	int X=m_UnitsPerHemline*m_CntDispGrp;<br />
	UINT i=0;<br />
	float Volt=0.f;<br />
	int DeltaY0=0;<br />
	int DeltaY1=0;<br />
	int DeltaY5=-1;<br />
	int DeltaY10=-1;<br />
	int DeltaY20=-1;<br />
	int DeltaY30=-1;<br />
	int DeltaYA=10000;<br />
	int DeltaYN=10000;<br />
	int DeltaYZ=10000;<br />
	int DeltaYJ=10000;<br />
	int DeltaYY=10000;<br />
	<br />
	CPen *pOldPen=NULL;<br />
<br />
	<br />
	pOldPen=dc.SelectObject(&m_RPen);<br />
	dc.MoveTo(m_LeftMargin,0);<br />
	dc.LineTo(m_LeftMargin,rt.Height()-m_BottomMargin);<br />
	dc.LineTo(rt.Width(),rt.Height()-m_BottomMargin);<br />
	dc.MoveTo(m_LeftMargin,int(rt.Height()*0.5f));<br />
	dc.LineTo(rt.Width(),int(rt.Height()*0.5f));<br />
	<br />
	//////////////////////////////////////////////////////////////////////////<br />
	//Begin drawing coordinate<br />
	int OldDC=dc.SaveDC();<br />
	dc.SetBkMode(TRANSPARENT);<br />
	dc.SetTextColor(RGB(255,0,0));<br />
<br />
	float fDeltaY=(m_DispMaxVolt-m_DispMinVolt)*0.2f;<br />
	Volt=m_DispMinVolt;<br />
	int iDeltaY=int(rt.Height()*0.1f);<br />
	int Y=int(rt.Height()*0.5f);<br />
	CRect RtText(0,int(rt.Height()*0.5f)-10,m_LeftMargin-2,int(rt.Height()*0.5f)+10);<br />
	SqlCmd.Format("%.2f",Volt);<br />
	dc.SelectObject(&m_RPen);<br />
	RtText.OffsetRect(0,-10);<br />
	dc.DrawText(SqlCmd,&RtText,DT_RIGHT|DT_BOTTOM);<br />
	RtText.OffsetRect(0,10);<br />
	for (i=1;i<6;++i) {<br />
		Y-=iDeltaY;<br />
		Volt+=fDeltaY;<br />
		RtText.OffsetRect(0,-iDeltaY);<br />
		if (i==5)<br />
			RtText.OffsetRect(0,10);<br />
		SqlCmd.Format("%.2f",Volt);<br />
		dc.SelectObject(&m_RPen);<br />
		dc.DrawText(SqlCmd,&RtText,DT_RIGHT|DT_BOTTOM);<br />
		dc.SelectObject(&m_RDashPen);<br />
		dc.MoveTo(m_LeftMargin,Y);<br />
		dc.LineTo(rt.Width(),Y);<br />
	}<br />
<br />
	if (m_AN_ZJY==1 && m_AN_Valid) {			//AN<br />
		fDeltaY=(m_DispMaxAN-m_DispMinAN)*0.2f;<br />
		Volt=m_DispMinAN;						//Not a volt, but a float<br />
		iDeltaY=int( (rt.Height()*0.5f-m_BottomMargin)*0.2f );<br />
		Y=rt.Height()-m_BottomMargin;<br />
		RtText.SetRect(0,rt.Height()-m_BottomMargin-10,m_LeftMargin-2,rt.Height()-m_BottomMargin+10);<br />
		SqlCmd.Format("%.2f",Volt);<br />
		dc.SelectObject(&m_RPen);<br />
		dc.DrawText(SqlCmd,&RtText,DT_RIGHT|DT_BOTTOM);<br />
		for (i=1;i<5;++i) {<br />
			Y-=iDeltaY;<br />
			Volt+=fDeltaY;<br />
			RtText.OffsetRect(0,-iDeltaY);<br />
			SqlCmd.Format("%.2f",Volt);<br />
			dc.SelectObject(&m_RPen);<br />
			dc.DrawText(SqlCmd,&RtText,DT_RIGHT|DT_BOTTOM);<br />
			dc.SelectObject(&m_RDashPen);<br />
			dc.MoveTo(m_LeftMargin,Y);<br />
			dc.LineTo(rt.Width(),Y);<br />
		}<br />
		Y-=iDeltaY;<br />
		Volt+=fDeltaY;<br />
		RtText.OffsetRect(0,-iDeltaY+10);<br />
		SqlCmd.Format("%.2f",Volt);<br />
		dc.SelectObject(&m_RPen);<br />
		dc.DrawText(SqlCmd,&RtText,DT_RIGHT|DT_BOTTOM);<br />
	} else if (m_AN_ZJY==2 && m_ZJY_Valid) {	//ZJY<br />
	}<br />
	dc.RestoreDC(OldDC);<br />
	//End drawing coordinate<br />
	//////////////////////////////////////////////////////////////////////////<br />
	<br />
	dc.SetMapMode(MM_ANISOTROPIC);<br />
	m_pRs->MoveLast();<br />
	for (i=0;i<m_CntDispGrp;++i) {<br />
		ASSERT(m_Tri_Valid);<br />
		dc.SetWindowExt(m_WinXExt,-m_WinYExt);<br />
		dc.SetViewportExt(rt.Width()-m_LeftMargin,int(rt.Height()*0.5f));<br />
		dc.SetWindowOrg(0,0);<br />
		dc.SetViewportOrg(m_LeftMargin,int(rt.Height()*0.5f));<br />
<br />
		//draw triangle<br />
		dc.SelectObject(&m_GPen);<br />
<br />
		Volt=float(m_pRs->GetCollect("first"));<br />
		DeltaY0=int(Volt*100-m_DispMinVolt*100+0.5f);<br />
		dc.MoveTo(X,DeltaY0);<br />
		dc.LineTo(X-m_UnitsPerHemline,DeltaY0);<br />
		Volt=float(m_pRs->GetCollect("last"));<br />
		DeltaY1=int(Volt*100-m_DispMinVolt*100+0.5f);<br />
		dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaY1);<br />
		dc.LineTo(X,DeltaY0);<br />
<br />
		Volt=float(m_pRs->GetCollect("max"));<br />
		DeltaY1=int(Volt*100-m_DispMinVolt*100+0.5f);<br />
		dc.MoveTo(X-int(m_UnitsPerHemline*0.5f),DeltaY1);<br />
		Volt=float(m_pRs->GetCollect("min"));<br />
		DeltaY1=int(Volt*100-m_DispMinVolt*100+0.5f);<br />
		dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaY1);<br />
		<br />
		_variant_t var;<br />
		<br />
		//MA5 Line<br />
		var=m_pRs->GetCollect("ma5");<br />
		float MA5;<br />
		if (var.vt==VT_NULL) {<br />
			MA5=0.f;<br />
		} else {<br />
			MA5=float(var);<br />
			if (DeltaY5>=0) {<br />
				dc.MoveTo(X+int(m_UnitsPerHemline*0.5f),DeltaY5);<br />
				DeltaY5=int(MA5*100-m_DispMinVolt*100+0.5f);<br />
				dc.SelectObject(&m_RPen);<br />
				dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaY5);				<br />
			} else {<br />
				DeltaY5=int(MA5*100-m_DispMinVolt*100+0.5f);<br />
			}<br />
		}<br />
		<br />
		//MA10 Line<br />
		var=m_pRs->GetCollect("ma10");<br />
		float MA10;<br />
		if (var.vt==VT_NULL) {<br />
			MA10=0.f;<br />
		} else {<br />
			MA10=float(var);<br />
			if (DeltaY10>=0) {<br />
				dc.MoveTo(X+int(m_UnitsPerHemline*0.50f),DeltaY10);<br />
				DeltaY10=int(MA10*100-m_DispMinVolt*100+0.5f);<br />
				dc.SelectObject(&m_YPen);<br />
				dc.LineTo(X-int(m_UnitsPerHemline*0.50f),DeltaY10);				<br />
			} else {<br />
				DeltaY10=int(MA10*100-m_DispMinVolt*100+0.5f);<br />
			}<br />
		}<br />
<br />
		//MA20 Line<br />
		var=m_pRs->GetCollect("ma20");<br />
		float MA20;<br />
		if (var.vt==VT_NULL) {<br />
			MA20=0.f;<br />
		} else {<br />
			MA20=float(var);<br />
			if (DeltaY20>=0) {<br />
				dc.MoveTo(X+int(m_UnitsPerHemline*0.50f),DeltaY20);<br />
				DeltaY20=int(MA20*100-m_DispMinVolt*100+0.5f);<br />
				dc.SelectObject(&m_BPen);<br />
				dc.LineTo(X-int(m_UnitsPerHemline*0.50f),DeltaY20);				<br />
			} else {<br />
				DeltaY20=int(MA20*100-m_DispMinVolt*100+0.5f);<br />
			}<br />
		}<br />
<br />
		//MA30 Line<br />
		var=m_pRs->GetCollect("ma30");<br />
		float MA30;<br />
		if (var.vt==VT_NULL) {<br />
			MA30=0.f;<br />
		} else {<br />
			MA30=float(var);<br />
			if (DeltaY30>=0) {<br />
				dc.MoveTo(X+int(m_UnitsPerHemline*0.50f),DeltaY30);<br />
				DeltaY30=int(MA30*100-m_DispMinVolt*100+0.5f);<br />
				dc.SelectObject(&m_WPen);<br />
				dc.LineTo(X-int(m_UnitsPerHemline*0.50f),DeltaY30);				<br />
			} else {<br />
				DeltaY30=int(MA30*100-m_DispMinVolt*100+0.5f);<br />
			}<br />
		}<br />
<br />
		if (m_AN_ZJY==1 && m_AN_Valid) {			//AN<br />
			dc.SetWindowExt(m_WinXExt,-m_WinYExtAN);<br />
			dc.SetViewportExt(rt.Width()-m_LeftMargin,int(rt.Height()*0.5f)-m_BottomMargin);<br />
			dc.SetWindowOrg(0,0);<br />
			dc.SetViewportOrg(m_LeftMargin,int(rt.Height())-m_BottomMargin);<br />
			//A Line<br />
			var=m_pRs->GetCollect("a");<br />
			float A;<br />
			if (var.vt==VT_NULL) {<br />
				A=0.f;<br />
			} else {<br />
				A=float(var);<br />
				if (DeltaYA!=10000) {<br />
					dc.MoveTo(X+int(m_UnitsPerHemline*0.50f),DeltaYA);<br />
					DeltaYA=int(A*100-m_DispMinAN*100+0.5f);<br />
					dc.SelectObject(&m_RPen);<br />
					dc.LineTo(X-int(m_UnitsPerHemline*0.50f),DeltaYA);				<br />
				} else {<br />
					DeltaYA=int(A*100-m_DispMinAN*100+0.5f);<br />
				}<br />
			}<br />
			<br />
			//N Line<br />
			var=m_pRs->GetCollect("n");<br />
			float N;<br />
			if (var.vt==VT_NULL) {<br />
				N=0.f;<br />
			} else {<br />
				N=float(var);<br />
				if (DeltaYN!=10000) {<br />
					dc.MoveTo(X+int(m_UnitsPerHemline*0.50f),DeltaYN);<br />
					DeltaYN=int(N*100-m_DispMinAN*100+0.5f);<br />
					dc.SelectObject(&m_YPen);<br />
					dc.LineTo(X-int(m_UnitsPerHemline*0.50f),DeltaYN);				<br />
				} else {<br />
					DeltaYN=int(N*100-m_DispMinAN*100+0.5f);<br />
				}<br />
			}<br />
		} else if (m_AN_ZJY==2 && m_ZJY_Valid) {	//ZJY<br />
			dc.SetWindowExt(m_WinXExt,-m_WinYExtZJY);<br />
			dc.SetViewportExt(rt.Width()-m_LeftMargin,int(rt.Height()*0.5f)-m_BottomMargin);<br />
			dc.SetWindowOrg(0,0);<br />
			dc.SetViewportOrg(m_LeftMargin,int(rt.Height())-m_BottomMargin);<br />
			<br />
			//Z Line<br />
			var=m_pRs->GetCollect("z");<br />
			float Z;<br />
			if (var.vt==VT_NULL) {<br />
				Z=0.f;<br />
			} else {<br />
				Z=float(var);<br />
				if (DeltaYZ!=10000) {<br />
					dc.MoveTo(X+int(m_UnitsPerHemline*0.5f),DeltaYZ);<br />
					DeltaYZ=int(Z-m_DispMinZJY+0.5f);<br />
					dc.SelectObject(&m_RPen);<br />
					dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaYZ);<br />
				} else {<br />
					DeltaYZ=int(Z-m_DispMinZJY+0.5f);<br />
				}<br />
			}<br />
			//J Line<br />
			var=m_pRs->GetCollect("j");<br />
			float J;<br />
			if (var.vt==VT_NULL) {<br />
				J=0.f;<br />
			} else {<br />
				J=float(var);<br />
				if (DeltaYJ!=10000) {<br />
					dc.MoveTo(X+int(m_UnitsPerHemline*0.5f),DeltaYJ);<br />
					DeltaYJ=int(J-m_DispMinZJY+0.5f);<br />
					dc.SelectObject(&m_YPen);<br />
					dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaYJ);<br />
				} else {<br />
					DeltaYJ=int(J-m_DispMinZJY+0.5f);<br />
				}<br />
			}<br />
			//Y Line<br />
			var=m_pRs->GetCollect("y");<br />
			float Y;<br />
			if (var.vt==VT_NULL) {<br />
				Y=0.f;<br />
			} else {<br />
				Y=float(var);<br />
				if (DeltaYY!=10000) {<br />
					dc.MoveTo(X+int(m_UnitsPerHemline*0.5f),DeltaYY);<br />
					DeltaYY=int(Y-m_DispMinZJY+0.5f);<br />
					dc.SelectObject(&m_BPen);<br />
					dc.LineTo(X-int(m_UnitsPerHemline*0.5f),DeltaYY);<br />
				} else {<br />
					DeltaYY=int(Y-m_DispMinZJY+0.5f);<br />
				}<br />
			}<br />
		}<br />
		X-=m_UnitsPerHemline;<br />
		m_pRs->MovePrevious();<br />
	}<br />
	dc.SelectObject(pOldPen);<br />
	// Do not call CWnd::OnPaint() for painting messages<br />
}<br />



-- modified at 23:14 Friday 16th November, 2007
AnswerRe: Different displays on two computers with same screen resolution. Pin
Nelek18-Nov-07 22:07
protectorNelek18-Nov-07 22:07 
Questiona pointer i can not delete! Pin
King Tran16-Nov-07 16:17
King Tran16-Nov-07 16:17 
AnswerRe: a pointer i can not delete! Pin
followait16-Nov-07 17:09
followait16-Nov-07 17:09 
AnswerRe: a pointer i can not delete! Pin
Jheriko++17-Nov-07 16:00
Jheriko++17-Nov-07 16:00 
GeneralRe: a pointer i can not delete! Pin
King Tran19-Nov-07 1:33
King Tran19-Nov-07 1:33 
Questionhow to get all the xml content using MSXML? Pin
lostangels16-Nov-07 15:54
lostangels16-Nov-07 15:54 
QuestionRe: how to get all the xml content using MSXML? Pin
bob1697217-Nov-07 6:01
bob1697217-Nov-07 6:01 
QuestionInsert popup menu Pin
Tony Teveris16-Nov-07 14:57
Tony Teveris16-Nov-07 14:57 
AnswerRe: Insert popup menu Pin
Hamid_RT16-Nov-07 21:21
Hamid_RT16-Nov-07 21:21 
GeneralRe: Insert popup menu Pin
Tony Teveris18-Nov-07 10:46
Tony Teveris18-Nov-07 10:46 
GeneralRe: Insert popup menu Pin
Hamid_RT18-Nov-07 20:42
Hamid_RT18-Nov-07 20:42 
Questionintialization failure? Pin
acerunner31616-Nov-07 12:03
acerunner31616-Nov-07 12:03 
AnswerRe: intialization failure? Pin
ThatsAlok17-Nov-07 0:16
ThatsAlok17-Nov-07 0:16 
GeneralRe: intialization failure? Pin
acerunner31619-Nov-07 11:57
acerunner31619-Nov-07 11:57 
Question[Message Deleted] Pin
azigrec16-Nov-07 9:18
azigrec16-Nov-07 9:18 
QuestionRe: problem Pin
Maximilien16-Nov-07 9:46
Maximilien16-Nov-07 9:46 
QuestionRe: problem Pin
David Crow16-Nov-07 10:56
David Crow16-Nov-07 10:56 

General General    News News    Suggestion Suggestion    Question Question    Bug Bug    Answer Answer    Joke Joke    Praise Praise    Rant Rant    Admin Admin   

Use Ctrl+Left/Right to switch messages, Ctrl+Up/Down to switch threads, Ctrl+Shift+Left/Right to switch pages.