|
RGB rgbGreen = RGB(0, 255, 0);<br />
long lColor = (long) rgbGreen;
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
Are you sure you don't want unsigned long? Why would you need a signed integer to store RGB information?
|
|
|
|
|
I think there's good chance that an RGB value is larger than the range that a signed long could handle.
|
|
|
|
|
Hi all,
i am using OnNCPaint() method to draw my own title bar, in order to give it a closing button, i am using this line of code:
dc.DrawFrameControl(closeRect,DFC_CAPTION,DFCS_ADJUSTRECT | DFCS_CAPTIONCLOSE);
where dc is the Device Context handler, and closeRect is the rectangle for the closing button.......
I can see the new title bar and closing button also. the problem is , i want to have a closing button as if my dialog is a tool window this means much smaller closing button.........
can any1 help me to fix?
thanks in advanced,
Yaron
Ask not what your application can do for you,
Ask what you can do for your application
|
|
|
|
|
I have a "handicapped" friend. He is using a graphical windows program. He type with one hand, and with one finger. This program has a functionality, by which he must press the Shift key and simultaneously use the mouse.
He cannot do that.
I like to write him a simple VC++ program: A dialogbased application with one button. If he turn on this button, that makes the Shift key down, if he turn off this button that releases the Shift key.
My ask:
Which MFC or windows function should I use?
I think: SendMessage(VK_SHIFT,????,?????)
Thank you!
(Exuse me for my english. I speak better Hungarian, or German.)
Pali
|
|
|
|
|
I point you to the Windows StickyKeys[^] function.
IIRC, StickyKeys works at the driver level and is implemented as a keyboard filter driver.
|
|
|
|
|
Hi!
I've created a HBITMAP from a Jpeg image (using Chris Losinger's JpegFile: http://www.smalleranimals.com/jpegfile.htm[^]).
When I ::BitBlt it the result is ok, but when I ::StrecthBlt it, the result is a skewed image.
Roughly, it looks like this:
+--------------------+
|\ |
| \ |
| \ |
| \ |
| \ |
+--------------------+ I'll try to explain what I see: It seems as each data line is longer than the specified image width, so that every line continues on the next, which results in a skewed image with a "diagonal" where the right edge should be. Understand?
Using JpegFile, I do this:
- Load the Jpeg file into a RGB buffer.
- Switch from RGB to BGR.
- Make the BGR buffer
DWORD aligned.
- Create the
HBITMAP with ::CreateBitmap (the DWORD aligned BGR buffer).
See anything crazy in that scheme? Any other ideas?
As I said ::BitBlt works with the HBITMAP , but ::StretchBlt doesn't.
Thanks for any input!
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
|
Chris Losinger wrote:
CreateDIBSection
Yes! Thanks! Creating a DIB section solved it.
The new scheme is:
- Read the Jpeg to a RGB buffer.
- Swap RGB -> BGR.
- DWORD align.
- Vertically flip.
- CreateDIBSection.
- memcpy the flipped buffer to the DIB section.
- ::StretchBlt().
Tada!
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
You must find the word boundary which is ususully 32 bit.
|
|
|
|
|
You must do this on a scanline by scanline basis. You must not be doing this.
|
|
|
|
|
Surely, you must mean 16 bits for a WORD.
--
Human beings, who are almost unique in having the ability to learn from the experience of others, are also remarkable for their apparent disinclination to do so. (Douglas Adams)
|
|
|
|
|
A computer word can be any size, it is the unit with which a the system operates. Actually DWORD should be a word, because we are all using 32 bit systems now, but it is a strange holdover from 16-bit days of windows.
|
|
|
|
|
My programs is getting slowed down and the GUI get updates slow IF another average heavy work is running on my computer.. ( like compiling something )
No other program is getting slow. And my program is at normal priority like the other program. It gets a little better if I raise it but I shouldn’t have to (I think).
The strange think is that this only happens if I run the version of my program that is compiled with VS2003. If I run the version I compiled with VS6 everything works fine.
I Also get some freeze up when I start a background thread ( worker thread ) and this thread is doing a lot of work and is sending messages to main thread to update a progress bar and stuff. This totally freezes up the application to until the thread is done.
And this also works fine in VS6. And only happens to the VS2003 compiled version.
So the question is.
Does anyone know what makes this happen?
Does anyone know if any difference from the MFC in VS6 to VS2003 that require some redesign or something?
Or do I have to go back to VS6 for MFC development
|
|
|
|
|
Is it possible to set the default printer as a PDF printer....are there any APIs which support commands to do the conversion
Maverick
|
|
|
|
|
SetDefaultPrinter(LPCTSTR pszPrinter)
|
|
|
|
|
thanks a lot...but it seems that you didn't get the whole problem or rather I didn't frame the problem properly...actually there is an application through which I generate some data, and while printing I want to get the printout in PDF format(I have the PDF writer with me), in that what I get is that the browser window asks me first to save the file in a different format which I don't want. I just want file to be stored at some specified location(which we are free to decide)....In all I want that once the user gives the print command he should get the printout in the PDF format....no interaction in between.....hope I am clear this time
|
|
|
|
|
Are you acessing the PDF print driver through the ICDIntf interface?
If you are, I did it this way:
void CMyView::OnPdfPrint()
{
DOCINFO di;
CPrintInfo printInfo;
CString filename;
CDC dc;
CRect draw_area;
char fname[_MAX_FNAME];
memset(&di, 0, sizeof(DOCINFO));
CFileDialog dlg(FALSE, "PDF", filename, OFN_OVERWRITEPROMPT | OFN_HIDEREADONLY, "Adobe acrobat PDF files (*.pdf)|*.pdf||");
if (dlg.DoModal() == IDCANCEL)
{
return;
}
AfxGetMainWnd()->EnableWindow(false);
CPrintStatus dlgPrintStatus(this);
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_DOCNAME, "Creating PDF interface");
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_PRINTERNAME, "");
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_PORTNAME, "");
dlgPrintStatus.ShowWindow(SW_SHOW);
dlgPrintStatus.UpdateWindow();
dlgPrintStatus.PumpMessages();
try
{
ICDIntf pdfInterface;
if (pdfInterface.CreateDispatch("CDIntf.CDIntf"))
{
long lPdfError = pdfInterface.PDFDriverInit("Sirius PDF Generator");
if(lPdfError != 0)
{
return;
}
pdfInterface.SetPaperSize(9);
pdfInterface.SetDefaultFileName(filename);
pdfInterface.SetFileNameOptions(1 + 2 + 32);
HDC hDC = (HDC)pdfInterface.CreateDC();
if (hDC != NULL)
{
OnAboutToPrint();
di.cbSize = sizeof(DOCINFO);
di.lpszDocName = pDoc->GetPathName();
di.lpszOutput = filename;
dc.Attach(hDC);
printInfo.m_bDirect = TRUE;
printInfo.m_rectDraw.left = 0;
printInfo.m_rectDraw.right = dc.GetDeviceCaps(HORZRES);
printInfo.m_rectDraw.top = 0;
printInfo.m_rectDraw.bottom = dc.GetDeviceCaps(VERTRES);
draw_area = printInfo.m_rectDraw;
CString strTemp;
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_DOCNAME, fname);
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_PRINTERNAME, "PDF Generator");
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_PORTNAME, "");
dlgPrintStatus.UpdateWindow();
dc.StartDoc(&di);
OnPreparePrinting(&printInfo);
printInfo.m_rectDraw = draw_area;
for (printInfo.m_nCurPage = 1; printInfo.m_nCurPage <= printInfo.GetMaxPage(); printInfo.m_nCurPage++)
{
strTemp.Format("Page %1d of %1d", printInfo.m_nCurPage, printInfo.GetMaxPage());
dlgPrintStatus.SetDlgItemText(AFX_IDC_PRINT_PAGENUM, strTemp);
dlgPrintStatus.PumpMessages();
dc.StartPage();
OnPrint(&dc, &printInfo);
dc.EndPage();
printInfo.m_rectDraw = draw_area;
}
OnEndPrinting(&dc, &printInfo);
dc.EndDoc();
VERIFY(dc.DeleteDC());
}
else
{
AfxMessageBox("PDF Driver failed, unable to create DC");
}
pdfInterface.SetFileNameOptions(0);
pdfInterface.DriverEnd();
pdfInterface.DetachDispatch();
if (atoi(RegistryProfile::GetProfileStringLM("PrintSettings", "StartPDF", "1")) != 0)
{
ShellExecute(NULL, NULL, filename, NULL, NULL, SW_SHOWMAXIMIZED);
}
}
}
catch (COleDispatchException * e)
{
CString cStr("");
if (!e->m_strSource.IsEmpty())
{
cStr = e->m_strSource + " - ";
}
if (!e->m_strDescription.IsEmpty())
{
cStr += e->m_strDescription;
}
else
{
cStr += "unknown error";
}
AfxMessageBox(cStr, MB_OK, (e->m_strHelpFile.IsEmpty())? 0:e->m_dwHelpContext);
e->Delete();
}
catch (CException *e)
{
TRACE("%s(%d): OLE Execption caught: SCODE = %x", __FILE__, __LINE__, COleException::Process(e));
e->Delete();
}
dlgPrintStatus.DestroyWindow();
AfxGetMainWnd()->EnableWindow();
}
Roger Allen
Sonork 100.10016
Were you different as a kid? Did you ever say "Ooohhh, shiny red" even once? - Paul Watson 11-February-2003
|
|
|
|
|
|
|
|
I know folks in the technology sector tend to use acronyms quite a bit, but I think this has gone a bit too far.
Five birds are sitting on a fence.
Three of them decide to fly off.
How many are left?
|
|
|
|
|
|
Hello Techie's,
Can anybody tell where I will find free Tutorials from the ground to the advanced topics in VC++6.0
|
|
|
|
|
Hi,
i want to change the Font of a CRichEditCtrl into Courier, 10. Can someone tell me how ?
Thanks in advance!
|
|
|
|
|