|
Hey frnds
Can any one tell me how to create 8 bit bitmap
thx in advance
|
|
|
|
|
See BITMAPINFOHEADER[^] structure (biBitCount for a 24-bit , set this to 24 and for an 8-bit , set this to 8).
|
|
|
|
|
Do you ever look at replies to your previous posts[^]?
What part of this is giving you trouble?
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
First of all,Thank u ,Mark.
I want to Display a 8 bit Bit map using my own palette,
i have designed a paltte in a variable ARGB[256][3].
Now i want to set this as system palette.
My bitmap bit should use this palette.
can u help me ..
Born To Code
|
|
|
|
|
Instead of ARGB[256][3], you may find it easier to use an array of RGBQUAD structs (or RGBTRIPLE
or PALETTEENTRY structs):
RGBQUAD MyColorTable[256];
Then to create a palette:
int nColorCount = 256;
LOGPALETTE *pLogPal = (LOGPALETTE*)new BYTE[sizeof(LOGPALETTE) +
(nColorCount - 1) * sizeof(PALETTEENTRY)];
pLogPal->palVersion = 0x300;
pLogPal->palNumEntries = nColorCount;
for (int i = 0; i < nColorCount; i++)
{
pLogPal->palPalEntry[i].peRed = MyColorTable[i].rgbRed;
pLogPal->palPalEntry[i].peGreen = MyColorTable[i].rgbGreen;
pLogPal->palPalEntry[i].peBlue = MyColorTable[i].rgbBlue;
pLogPal->palPalEntry[i].peFlags = 0;
}
HPALETTE hPalette = ::CreatePalette(pLogPal);
delete[] (BYTE *)pLogPal;
Once you have an HPALETTE, you can select it into a memory DC if you're working with device
dependent bitmaps, a screen/window DC if the screen is in a palette video mode, etc.
If you're working with an 8-bit device-independent bitmap, your color table should be copied
to the bmiColors array in a BITMAPINFO struct.
I'm not sure what type bitmap you're working with so I'm not sure what sample code to show
Mark
"Posting a VB.NET question in the C++ forum will end in tears." Chris Maunder
|
|
|
|
|
Hi all,
I have made a sdi application. i want that my sdi application window should always remain in restore form it should never get maximized. How to disable maximize window option....
thanks in advance
|
|
|
|
|
// m_pMainWnd->UpdateWindow();
//Add this code to the end of application's InitInstall Procedure
SetWindowLong( m_pMainWnd->GetSafeHwnd() , GWL_STYLE , GetWindowLong(m_pMainWnd->GetSafeHwnd() , GWL_STYLE) & ~ WS_MINIMIZEBOX ) ;
|
|
|
|
|
Add cs.style ^= WS_MAXIMIZEBOX; in PreCreateWindow method of CMainFrame
BOOL CMainFrame::PreCreateWindow(CREATESTRUCT& cs)
{
if( !CFrameWnd::PreCreateWindow(cs) )
return FALSE;
cs.style ^= WS_MAXIMIZEBOX;
return TRUE;
}
Amar
|
|
|
|
|
How can i get the result ?
I have a CListCtrl ,i have 2 columns column 0, column 1.All i whant is to select lets say 2 rows(GetCheck) , lets say in row 1-column 1 i have 10 in the second selected(GetCheck) row i have 20 , now i need the rezult 10+20=30 , 30 i need this in CEdit m_result.SetWindowText(...);
when i push the button i need to m_list.GetCheck(...); ...i think !
please help me !
Bravoone
|
|
|
|
|
can you give me more details abt your problem?
Regards,
Ram
|
|
|
|
|
Ok,i have try this:
for(int k=0; k<m_list1.getitemcount();k++)
{
if="" (m_list1.getcheck(k)="=" true)
{
="" cstring="" st,s1,s2;
s1="m_list1.GetItemText(k,2);
s2" =="" m_list1.getnextitem(k,2);
st.format("%.1f",atof(s1)="" +="" atof(s2));
="" messagebox(st);
}
="" }
but,messagebox="" give="" me="" s1="" and="" when="" i="" push="" ok="" messagebox="" s2="" but="" need="" s1+s2="sT" maybe="" the="" user="" select="" 30="" rows="" in="" list="" then="" how="" ?
=""
<div="" class="ForumSig">Bravoone
|
|
|
|
|
Your coding seems ok. nothing problem with the code. why dont you debug the code and check the value of s1, s2 and sT.
Regards,
Ram
|
|
|
|
|
is ok i now but i need s1+s2 = sT but my code make this : MessageBox(s1); and then diplay MessageBox(s2); but i need s1 + s2 = sT MessageBox(sT);
How?
Bravoone
|
|
|
|
|
can you change the MessageBox(sT) statement outside the for loop and try.
Regards,
Ram
|
|
|
|
|
Can you try using CListCtrl::GetFirstSelectedItemPosition(), CListCtrl::GetNextSelectedItem()?
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
m_list1.GetFirstSelectedItemPosition() : is not a member of 'CListCtrl'
Bravoone
|
|
|
|
|
Bravoone_2006 wrote: m_list1.GetFirstSelectedItemPosition() : is not a member of 'CListCtrl'
Then whatever you are programming is not Visual C++ / MFC.
Oh, wait, it could still be VC++ 5.0 from the mid-nineties.
Just kidding, but this function *really* should be there.
Failure is not an option - it's built right in.
|
|
|
|
|
Here it is[^? And you didn't find it.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
|
Use these two functions to get the selected items and the text related to them. Store them in some array(if the items selected are variable) and then add them up outside the loop by traversing the array.
Somethings seem HARD to do, until we know how to do them.
_AnShUmAn_
|
|
|
|
|
no,no you dont understand the user must not select the items he checks them!!!!!! only items checks i need them to get the value !
Bravoone
|
|
|
|
|
Hello.
I have created a CFormView based program and have added another CFormView class. I have tried to use this: pDoc->SetTitle("First View") for the first view and pDoc->SetTitle("Second View") for the second view. When file->open, the first view appear with the title "AppName - [First View]" but when I clicked on the menu for the second view, the first view title changed to "AppName - [Second View:1]". How can I make the title of the first view unchanged when the second view is opened?
Thanks.
|
|
|
|
|
You should set the caption text of the frame instead of setting the documents title.
GetParent()->SetWindowText("First View");
It's not rocket surgery!
Within you lies the power for good, use it!!!
|
|
|
|
|
er..
How do I use that code?
I've tried replacing it with the old one but the title bar stays the same as the original.
|
|
|
|
|
Aint wrote: How do I use that code?
Why you cant use of it?
|
|
|
|