|
MSDN :
The RGBQUAD structure describes a color consisting of relative intensities of red, green, and blue.
typedef struct tagRGBQUAD { // rgbq
BYTE rgbBlue;
BYTE rgbGreen;
BYTE rgbRed;
BYTE rgbReserved;
} RGBQUAD;
Members
rgbBlue Specifies the intensity of blue in the color.
rgbGreen Specifies the intensity of green in the color.
rgbRed Specifies the intensity of red in the color.
rgbReserved Reserved; must be zero.
Remarks
The bmiColors member of the BITMAPINFO structure consists of an array of RGBQUAD structures.
And keep in mind that an array is a pointer!
u can always write:
int a[5];
a[1] = 2;
*(a+1) = 3; // Means a[1] = 3;
Papa
Murex Co.
|
|
|
|
|
This bmiColors is the tip of a variably-sized array of RGBQUAD s. Suppose for instance your palette has nBmiColors entries, you'd allocate and stuff the thing like this:
unsigned nBmiColors=256;
BIMAPINFO* lpbmi=(BITMAPINFO *)malloc(
sizeof(BITMAPINFO)+
nBmiColors==0?0:(nBmiColors-1)*sizeof(RGBQUAD));
for(unsigned n=0;n<nBmiColors;++n)
{
lpbmi->bmiColors[n]=...;
}
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hello,
I don't know if someone could help me with this, but if they could I would very much appreciate it. I created a very basic MDI application to let me open Bitmaps. So that works fine. I click Open, select a bitmap, voila, my Bitmap appears!
But, when I start this program, it comes with one blank window open. If I decide to close this window (or if at any time I decide to close all windows) and have no windows open, I encounter a problem I'd like to fix. If I hit Open, and select a Bitmap, it opens a new window, but no bitmap appears. It is simply a blank window. I want the bitmap I had chosen to appear.
I tried to use OnFileNew, or even CWinApp::OnFileNew, but it tells me these methods are protected. If I take them out of protected and make them public, funny enough, it STILL says they are protected. I am sure that making them public instead of protected is the wrong way to do this, but I am currently out of ideas.
If anyone knows how to make file->open open a new window as well, I'd really like to know how you do it.
Thanks a whole lot,
Nick One
|
|
|
|
|
The CDocument derived class has an OnNewDocument method ( or something similar ), and that is where you want to do it.
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
Half the reason people switch away from VB is to find out what actually goes on.. and then like me they find out that they weren't quite as good as they thought - they've been nannied. - Alex, 13 June 2002
|
|
|
|
|
To stop a window being opened at the the start of your application:
if (cmdInfo.m_nShellCommand == CCommandLineInfo::FileNew)
cmdInfo.m_nShellCommand = CCommandLineInfo::FileNothing ;
Just before the call to ProcessShellCommand()
Roger Allen
Sonork 100.10016
If I had a quote, it would be a very good one.
|
|
|
|
|
Hi,
I have a MDI program, this program starts a Dialog using doModal function, but this function stop the main window, and wait for a user resp (press Ok or Cancel). I need that this main window don't stop ..
How can I do that?
|
|
|
|
|
Use a modeless dialog (search for info on your docs, basically you create and show the dialog without calling DoModal and keep on with your program, later on someone has to take care of destroying the dialog when the window associated exits.)
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
|
Do you want to create a splash screen?
/ravi
Let's put "civil" back into "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
I believe this has been a very long time(over 3 years) problem that no one in CP has figured out(or has claimed that they do) a solution to solve:
How do you send email in your C/C++/MFC programs if the SMTP server requires authentication?
Note: nowadays it's like 99.99% of SMTP servers in the world require authentication, damn it.
|
|
|
|
|
Anonymous wrote:
How do you send email in your C/C++/MFC programs if the SMTP server requires authentication?
You write the code yourself instead of using some built-in systems which can't.
Take a look at RFC2554 it says it all.
Basicly you send an AUTH command to the server, then it sends a Base64 encoded string back to you asking for a username, then you send the (Base64 encoded) username back to the server, then it asks for the password, and you send the password to the server.
Depending on what the server supports the "encoding" can also be MD5-Cram or MD5-Digest checksums instead of Base64 encoding.
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Cool I want to know that, but where do you find article "RFC2554", I tried to search it on Yahoo and got a dead link.
|
|
|
|
|
See this link.
/ravi
Let's put "civil" back into "civilization"
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
http://rfc.net/rfc2554.html
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
In addition to what Anders said, some SMTP servers behave differently. They have a corresponding POP server and when you POP successfully from it, your IP address is added to an allowed list for a fixed time interval. During that time you can use the SMTP as a relaying SMTP, else it will ask you to authenticate once via POP.
Nish
Author of the romantic comedy
Summer Love and Some more Cricket [New Win]
|
|
|
|
|
Yea, but thats baaaad behavior, because most mailprograms sends before they receive.
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Hi all,
I am having a very strange problem with exception handling and variants. Here is a complete sample program that I have reduced the problem down to.
#include "stdafx.h"
#include <comdef.h>
class X
{
public:
VARIANT Test(BSTR name) const
{
VARIANT v;
VariantInit(&v);
return v;
}
};
int Test()
{
int index = 0;
try
{
throw 10;
X obj;
obj.Test(L"hi");
}
catch (...)
{
index = -1;
}
return index;
}
int main(int argc, char* argv[])
{
int i = Test();
return 0;
}
If anyone can give any insight as to why this problem occurs or how to get around it I would greatly appreciate it.
Thank you
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
Works fine for me. No problems at all
|
|
|
|
|
I guess my question to you then are you using VC++ 6.0 and do you know of any settings in the compiler that could be causing this problem.
If I reorganize the Test function so that it does not use a VARIANT as a return type, but passed that value in as a reference arguement, it works fine for me as well.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
Have you set the stack unwinding option (/GX)?
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Yes I have, thank you.
Build a man a fire, and he will be warm for a day Light a man on fire, and he will be warm for the rest of his life!
|
|
|
|
|
I was wondering what the quickest method to copy a folder and all of its sub-directories and files to another location would be. I am currently using a recursive function to find all files in all subdirectories then manually making the directories and copying each file over to the new location. Is there a way to copy all of this at once (like in windows when its shows the files flying from one folder to another and it makes all subdirectories in the new location)???
Any suggestions would be appreciated!
Thanks
|
|
|
|
|
SHFileOperation() is the one you are looking for!
It does have the progress window if you want to use.
It does do copy recursive sub-directories.
This does copy/rename/delete too...;) all in one package
I dont think this is the fastest way but application level safest way as its a high level api.
Thanks,
Ramu
|
|
|
|
|
1. What do i have to set the bmWidthBytes property to? MSDN says to set it to the number of bytes in each scan line, what is a scan line?
2. What do i have to set the bmPlanes property to? MSDN says "Specifies the count of color planes." what are color planes?
3. To create a valid bitmap picture, do i just save the entire BITMAP sctruct to the harddrive or is there another function that i should use?
Thanks in advance.
|
|
|
|
|
a scan line corresponds to the width of the screen, bmWidthBytes is the number of bytes required to represent on horizontal line of pixels.
the bmPlanes property refers to the number of color planes used by the device. Some printers require that the information for a scan line be sent one color at a time. e.g. send the red value of all the pixels, then send the blue values then the greens. In most cases set it to 1.
|
|
|
|