|
Does anyone know how to get the outline for a bitmap?
|
|
|
|
|
do you mean something more complicated than drawing a rectangle?
-c
Garbage collection, making life better - for weenies!
|
|
|
|
|
Hi again,
IE has a field of standard buttons. Is it possible to add a button to that field and attach some code to it to be invoked when the button is pushed?
Thx a lot,
/Tommy
|
|
|
|
|
Hi everybody,
I wish to perform some action on a piece of selected text, grabbed from within IE. So, when for example double clicking a word in explorer, the word gets selected. Immediately I would like my code to execute to perform some nifty action. Does anyone know how to accomplish this, any pointers?
Seems like a difficult task, but is it really?
/Tommy
|
|
|
|
|
hi .. i want to write a bitmap to a file , the code which ive written is
BOOL COpenbitmapDlg::WriteDIB(LPTSTR szFile, HANDLE hDIB)
{
//----------------------------------------
BITMAPFILEHEADER hdr ;
LPBITMAPINFOHEADER lpbi ;
if(!hDIB)
return FALSE ;
CFile file ;
if(!file.Open(szFile,CFile::modeWrite|CFile::modeCreate))
return FALSE ;
lpbi=(LPBITMAPINFOHEADER)hDIB;
int nColors = 1 << lpbi->biBitCount;
hdr.bfType = ((WORD) ('M' << 8) | 'B'); // is always "BM"
hdr.bfSize = GlobalSize (hDIB) + sizeof( hdr );
hdr.bfReserved1 = 0;
hdr.bfReserved2 = 0;
hdr.bfOffBits = (DWORD) (sizeof( hdr ) + lpbi->biSize +
nColors * sizeof(RGBQUAD));
file.Write( &hdr, sizeof(hdr) );
// Write the DIB header and the bits
file.Write( lpbi, GlobalSize(hDIB) );
//file.WriteHuge(lpbi,GlobalSize(hDIB)):
return TRUE;
}
and then i pass it a bitmap handle which i use to open simple bitmap files.
this code do create a file .. but when i try to check dat file i get an error message , secondly the file size is also very much less than the orignal file.
looking for ure hlp
looking forward from all the gurus of code
|
|
|
|
|
try:
BYTE* pDib = (BYTE*)GlobalLock(hDIB);
replace hDIB with pDib and call GlobalUnlock(pDib); at the end.
|
|
|
|
|
what the hell...u agian.since 1981 u r asking the same question.
|
|
|
|
|
My problem is that I can not compare the character 13 which is carriage return and the character 10 newLine. I attemp to do f.e
char buffer[10];
if ((buffer[ct]==\13)||(buffer[ct]==\10))
too I have attempt:
if ((buffer[ct]==0x0D)||(buffer[ct]==0x0A))
also
if ((buffer[ct]==char(13))||(buffer[ct]==char(10))
but any other way it works fine. I don´t know why it is the cause. The program entry not for this way.
thanks in advance.
|
|
|
|
|
|
To do character comparisons you would use:
'\r' , '\n' or '\016' (13) or '\013' (10) octal
Roger Allen
Sonork 100.10016
If I had a quote, it would be a very good one.
|
|
|
|
|
If you use iostreams, then GetLine will work perfectly and you can even set the delimiter.
The std library CANES the MFC container and file classes.
Christian
I am completely intolerant of stupidity. Stupidity is, of course, anything that doesn't conform to my way of thinking. - Jamie Hale - 29/05/2002
|
|
|
|
|
Hi,
does somebody know in which cases ::SymGetModuleBase returns with NULL, unable to retrieve the module ?
Thanks
Oli
|
|
|
|
|
If the function succeeds, the return value is a nonzero virtual address. The value is the base address of the module containing the address specified by the dwAddr parameter.
If the function fails, the return value is zero. To retrieve extended error information, call GetLastError.
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
Hi John,
thanks for your answer. What I like to know is when does it fail ? I'm using the method in already running product code and I cannot introduce a call to GetLastError.
Regards
Oli
|
|
|
|
|
Are you saying you don't have the source to the code?
This is a symbolic debugger helper function. If you have MSDN, check it out. There is simply too much info there to post here.
------- signature starts
"...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
Please review the Legal Disclaimer in my bio.
------- signature ends
|
|
|
|
|
I have to catch screen and print it into a previous selected printer. I do this two things but when i print the bitmap,using StretchBlt, i get a white and black image. I think that the problem is that the DC i get from de printer, hdc2Bmp = CreateCompatibleDC(hdcPrinter);, has one bit per pixel. Who i can i change this? To get de printer dc i do this:
if (!OpenPrinter((LPTSTR)m_szPrinterName,(LPHANDLE)&hPRN,NULL))
return FALSE;
dpBytesNeeded = DocumentProperties(NULL,hPRN,(LPSTR)m_szPrinterName,NULL,NULL,0);
if (!(lpDevMode = (LPDEVMODE)LocalAlloc(LPTR,dpBytesNeeded)))
return FALSE;
if (DocumentProperties(NULL,hPRN,(LPSTR)m_szPrinterName,(PDEVMODE)lpDevMode,NULL,DM_OUT_BUFFER) != IDOK)
return FALSE;
lpDevMode->dmOrientation = DMORIENT_LANDSCAPE;
lpDevMode->dmCopies = m_iNumCopies;
lpDevMode->dmFields = DM_ORIENTATION | DM_COPIES;
if (DocumentProperties(NULL,hPRN,(LPSTR)m_szPrinterName,(PDEVMODE)lpDevMode,(PDEVMODE)lpDevMode,DM_IN_BUFFER|DM_OUT_BUFFER) != IDOK)
return FALSE;
if (!(hdcPrinter = CreateDC(m_szPrinterDriver,m_szPrinterName,NULL,(CONST DEVMODE *)lpDevMode)))
return FALSE;
Thanks
Have a nice day
|
|
|
|
|
A DC is initially created to contain a "default" b/w bitmap. Creating something compatible with it (obviously) creates something b/w. Try selecting some color bitmap into the source DC first.
++luck;
|
|
|
|
|
hi, i using MS FlexiGrid on VC6. IS there anyway that i can clear cells that contains bitmap ? TQ
LONG LIVE C++! LONG LIVE CODING!
|
|
|
|
|
Hello,
I'm making an application, that should use console, when started from a command line and windows otherwise. It has to work in UNIX too, so it must have main().
The way I've done it, works, but I'm not satisfied with it. When I start it from a command line it works properly, but when starting it as GUI it makes a console window first and then GUI. I would like to get rid of the console in GUI version. I've tried to make console disappear using FreeConsole(), but even though I use it as early as possible the console flashes in the beginning. The other solution I've tried is to use linker options '/entry:"main" /subsystem:windows'. This works fine with GUI, but the console version doesn't do anything.
I hope someone knows a better way to do it.
-Janetta
|
|
|
|
|
I think that the console creation is perfomed during the C library initialization that is performed by mainCRTStartup before your main function is called. You can found mainCRTStartup code into CRT0.C under /crt/src subdir of VC++ installation (if you installed the C library source code, of course).
I never tried to remove the window (I looked at this code only to reduce the size of executables) but you can check the routines called during program startup.
There's a good article about C library initialization by Matt Pietrek:
http://www.microsoft.com/msj/defaulttop.asp?page=/msj/archive/s569.htm
It explain how to reduce executable size but I think it could be helpful also for your pourpouses.
Good luck
--
Looking for a new screen-saver?
Try FOYD:
http://digilander.iol.it/FOYD
|
|
|
|
|
Basically, you're screwed. Seriously.
The only way to get the stdio handles connected to the console starting the app is by having a main() and the app "tagged" as a console app by the PE flags (linker option /subsystem:console). This is one parts of the baggage we carry from Win16.
The default behaviour for a console app to be started is that Windows (I don't know if its the module loader, but I guess it is) allocates a console for a console-tagged app. The only way I know about to change this is to change the flags passed to CreateProcess (to inhibit the creation of the console window). When you have an app that is started by another process (such as Explorer.exe when double-clocking an executable) I can only come to think of hooking (system-wide, loading your DLL for every created process and changing the import translation table) the CreateProcess call to stop it from doing this on a per-application basis.
As I initially wrote, you're basically screwed. Sorry...
|
|
|
|
|
Thanks for both of you for your advice. I haven't found a solution yet, but I'll keep on fighting
-Janetta
|
|
|
|
|
how to change the stock backcolor property of ocx to window background color by default.. i changed it.. it works but the property browser in vb shows application backcolor under systems Tab... for ex. if vb form background is windowtitle... control shows windowtitle in the property browser... but i am getting the correct color in the control....
now my questiong is how to set windowback ground color as default color in my control?
|
|
|
|
|
Hi there, how do I have my application just to run single instance of it. er....eg. Restore the previous instance of the app and then exits.
|
|
|
|
|
When the app starts up, do a check for a mutex. if it doesn't exist create one, and if not then find the existing app and restore it..
something like:
CString strMutexName = _T("MyApp"); // can also use a GUID here
if (!m_hMutex) {
m_hMutex = CreateMutex(NULL, FALSE, strMutexName);
} else {
/* go through all the current windows and restore the existing version of your app. i can't remember how to do this now.. something to do with EnumWindow i'm sure, just don't use FindWindow (heard bad things about it ). */
}
hope this helps.
|
|
|
|