Click here to Skip to main content
15,887,477 members
Home / Discussions / C / C++ / MFC
   

C / C++ / MFC

 
GeneralRe: Worker thread->crash Pin
Peter Weyzen10-Mar-08 19:49
Peter Weyzen10-Mar-08 19:49 
GeneralRe: Worker thread->crash Pin
ThatsAlok10-Mar-08 20:36
ThatsAlok10-Mar-08 20:36 
QuestionRe: Worker thread->crash Pin
Maxwell Chen10-Mar-08 20:45
Maxwell Chen10-Mar-08 20:45 
GeneralRe: Worker thread->crash Pin
CPallini10-Mar-08 22:39
mveCPallini10-Mar-08 22:39 
GeneralRe: Worker thread->crash Pin
kanduripavan11-Mar-08 16:57
kanduripavan11-Mar-08 16:57 
Generalprogram to convert roman number to its decimal equvalent Pin
Dhiraj kumar Saini10-Mar-08 17:05
Dhiraj kumar Saini10-Mar-08 17:05 
GeneralRe: program to convert roman number to its decimal equvalent Pin
Stephen Hewitt10-Mar-08 18:02
Stephen Hewitt10-Mar-08 18:02 
GeneralInitialization of Dialog Controls Pin
jonsey2984710-Mar-08 13:33
jonsey2984710-Mar-08 13:33 
My application is using the following static control

CONTROL "", DISPLAY, "STATIC", SS_BLACKRECT, 10, 10, 300, 200

My application plota a line in this area, when I clear the line by setting the color to black and replotting the line the liane are is darker.

To resolve this I draw a rectngle using the black brush.

Where do I put the code so the drawing occurs as soon as the Dialog is visable, I tried using the WM_PAINT message but the results were not pretty.

static BOOL CALLBACK DialogFunc(HWND hwndDlg, UINT msg, WPARAM wParam, LPARAM lParam)<br />
{<br />
	switch (msg) {<br />
	/* This message means the dialog is started but not yet visible.<br />
	   Do All initializations here<br />
        */<br />
	case WM_INITDIALOG:<br />
		InitializeApp(hwndDlg,wParam,lParam);<br />
   	hDisplayArea = GetDlgItem(hwndDlg, DISPLAY);<br />
<br />
		hdcDisplay = GetDC(hDisplayArea);<br />
		GetClientRect(hDisplayArea, &rDisplayRect);<br />
		hBrush = GetStockObject(BLACK_BRUSH);<br />
		SelectObject(hdcDisplay, hBrush);<br />
		Rectangle(hdcDisplay, rDisplayRect.left, rDisplayRect.top, rDisplayRect.right, rDisplayRect.bottom);<br />
<br />
<br />
		return TRUE;<br />
	/* By default, IDOK means close this dialog returning 1, IDCANCEL means<br />
           close this dialog returning zero<br />
        */<br />
	case WM_COMMAND:<br />
		switch (LOWORD(wParam)) {<br />
			case IDOK:<br />
<br />
<br />
				int			x, y, i;<br />
				int			nNumHDivisions = 10;<br />
				int			nNumVDivisions = 10;<br />
				int			nPixBetHDivisions = 0;<br />
				int			nPixBetVDivisions = 0;<br />
				int			nTimeBase = 10;<br />
				int			nPosition = 0;<br />
				int			nScaleFactor = 1;<br />
				int			nXoffset = 100;<br />
				int			nStartData = 0, nEndData = 0;<br />
<br />
				hpBlack  = CreatePen(PS_SOLID,1,crBLK);<br />
				hpPen[0] = CreatePen(PS_SOLID,1,crWHT);<br />
			   hpPen[1] = CreatePen(PS_DASH,1,crWHT);<br />
				hpPen[2] = CreatePen(PS_SOLID,1,crGRN);<br />
				hpPen[3] = CreatePen(PS_DASH,1,crGRN);<br />
				hpPen[4] = CreatePen(PS_SOLID,1,crBLU);<br />
				hpPen[5] = CreatePen(PS_DASH,1,crYEL);<br />
				hpPen[6] = CreatePen(PS_SOLID,1,crRED);<br />
				hpPen[7] = CreatePen(PS_DASH,1,crRED);<br />
<br />
				hDisplayArea = GetDlgItem(hwndDlg, DISPLAY);<br />
<br />
				hdcDisplay = GetDC(hDisplayArea);<br />
				GetClientRect(hDisplayArea, &rDisplayRect);<br />
				hBrush = GetStockObject(BLACK_BRUSH);<br />
				SelectObject(hdcDisplay, hBrush);<br />
				Rectangle(hdcDisplay, rDisplayRect.left, rDisplayRect.top, rDisplayRect.right, rDisplayRect.bottom);<br />
<br />
				nPixBetHDivisions =  rDisplayRect.right / nNumHDivisions;<br />
				nPixBetVDivisions = rDisplayRect.bottom / nNumVDivisions;<br />
				nXoffset = rDisplayRect.bottom / 2;<br />
   			nPosition = nXoffset - nPosition;<br />
<br />
				for(x = nPixBetHDivisions; x < rDisplayRect.right; x += nPixBetHDivisions)<br />
					{<br />
						MoveToEx(hdcDisplay, x, 0, NULL);<br />
						for(y = 10; y < rDisplayRect.bottom; y=y+10)<br />
							SetPixel(hdcDisplay, x, y, crWHT);<br />
						MoveToEx(hdcDisplay, x, 0, NULL);<br />
					}<br />
				for(y = nPixBetVDivisions; y < rDisplayRect.bottom; y+= nPixBetVDivisions)<br />
					{<br />
						MoveToEx(hdcDisplay, 0, y, NULL);<br />
						for(x = 10; x < rDisplayRect.right; x=x+10)<br />
							SetPixel(hdcDisplay, x, y, crGRN);<br />
					}<br />
				for(i=0; i<MAX_POINTS; i++)<br />
					{<br />
						Data[i].x = i;<br />
						Data[i].y = (int) (sin(3.14 * i)/MAX_POINTS);<br />
					}<br />
<br />
				for(i=0; i<rDisplayRect.right; i=i+nTimeBase)<br />
					{<br />
						DrawLine(hdcDisplay, rDisplayRect.bottom, i,  Data[nStartData].y, i + nTimeBase, Data[nStartData + 1].y, nPosition, nScaleFactor, crRED);<br />
						nStartData++;<br />
					}<br />
<br />
				SetROP2(hdcDisplay, R2_XORPEN);<br />
				nStartData = 0;<br />
				sleep(100);<br />
				for(i=0; i<rDisplayRect.right; i=i+nTimeBase)<br />
					{<br />
						DrawLine(hdcDisplay, rDisplayRect.bottom, i,  Data[nStartData].y, i + nTimeBase, Data[nStartData + 1].y, nPosition, nScaleFactor, crRED);<br />
						nStartData++;<br />
					}<br />
				ReleaseDC(hwndDlg, hdcDisplay);<br />
				return 1;<br />
			case IDCANCEL:<br />
				EndDialog(hwndDlg,0);<br />
				return 1;<br />
		}<br />
		break;<br />
        /* By default, WM_CLOSE is equivalent to CANCEL */<br />
	case WM_CLOSE:<br />
		EndDialog(hwndDlg,0);<br />
		return TRUE;<br />
<br />
	}<br />
	return FALSE;<br />
}<br />
<br />


As always any help is greatly appreciated.

Tom
GeneralRe: Initialization of Dialog Controls Pin
Mark Salsbery10-Mar-08 13:47
Mark Salsbery10-Mar-08 13:47 
GeneralRe: Initialization of Dialog Controls Pin
Stephen Hewitt10-Mar-08 15:07
Stephen Hewitt10-Mar-08 15:07 
GeneralRe: Initialization of Dialog Controls Pin
jonsey2984710-Mar-08 18:10
jonsey2984710-Mar-08 18:10 
GeneralRe: Initialization of Dialog Controls Pin
Maxwell Chen10-Mar-08 19:05
Maxwell Chen10-Mar-08 19:05 
GeneralRe: Initialization of Dialog Controls Pin
jonsey2984710-Mar-08 23:38
jonsey2984710-Mar-08 23:38 
QuestionDLL compatibility with VS 2005 and VS 6.0 Pin
akiraps10-Mar-08 11:57
akiraps10-Mar-08 11:57 
GeneralRe: DLL compatibility with VS 2005 and VS 6.0 Pin
Mark Salsbery10-Mar-08 12:29
Mark Salsbery10-Mar-08 12:29 
QuestionVisual C++ Prerequisites Pin
nike_arh10-Mar-08 8:33
nike_arh10-Mar-08 8:33 
GeneralRe: Visual C++ Prerequisites [modified] Pin
led mike10-Mar-08 8:46
led mike10-Mar-08 8:46 
GeneralRe: Visual C++ Prerequisites Pin
nike_arh10-Mar-08 8:50
nike_arh10-Mar-08 8:50 
GeneralRe: Visual C++ Prerequisites Pin
David Crow10-Mar-08 8:51
David Crow10-Mar-08 8:51 
GeneralRe: Visual C++ Prerequisites Pin
David Crow10-Mar-08 8:50
David Crow10-Mar-08 8:50 
GeneralRe: Visual C++ Prerequisites Pin
nike_arh10-Mar-08 8:54
nike_arh10-Mar-08 8:54 
GeneralRe: Visual C++ Prerequisites Pin
led mike10-Mar-08 9:04
led mike10-Mar-08 9:04 
GeneralRe: Visual C++ Prerequisites Pin
David Crow10-Mar-08 10:09
David Crow10-Mar-08 10:09 
GeneralRe: Visual C++ Prerequisites [modified] Pin
Maxwell Chen10-Mar-08 8:51
Maxwell Chen10-Mar-08 8:51 
GeneralRe: Visual C++ Prerequisites Pin
led mike10-Mar-08 8:56
led mike10-Mar-08 8: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.