|
Thanks alot for your help
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
What do you mean you cannot see the transparent bitmap? Do you mean that you cannot see your bitmap at all, or the areas that should be transparent are not.
The LR_LOADTRANSPARENT flag only works with 8-bit images and will convert the first pixel found in the image to the default color for a window. So if you are not painting your bitmap to a window that has the background color set to the default color then this technique will not work.
What you may want to do is create a monochromatic bitmap match to your bitmap, that acts as a transparency mask, then you can use MaskBlt to paint the transparent portions of your bitmap.
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!
|
|
|
|
|
Thanks alot for your help
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
An app which has worked fine under W2K crashes in the exception handler under XP both with the binary built under W2K or XP, using VC++6.
It happens at the END_CATCH line in the code below (generates an access
violation at 0xc0000005) if the file does not exist.
It worked fine in W2K. What is different between W2K and XP that could cause this?
BOOL CUnembedDlg::OpenFile(CString f_name)
{
TRY
{
// Open the file in text mode to do
// CR-LF -> LF converison.
CStdioFile cstdf(f_name, CFile::typeText | CFile::modeRead);
DWORD f_size = cstdf.GetLength();
LPTSTR s = file.GetBufferSetLength((int)f_size);
cstdf.Read(s, (UINT)f_size);
cstdf.Close();
file.ReleaseBuffer(-1);
m_FileSize = file.GetLength();
if (-1 == file.Find("embedded-sysfiles", 0))
{
CString err_msg = "File not recognized";
MessageBox(err_msg, f_name, MB_OK | MB_ICONERROR);
m_combo1.SendMessage(WM_SETFOCUS, 0, 0);
m_combo1.Clear();
return false;
}
return true;
}
CATCH(CFileException, e)
{
e->ReportError();
e->Delete();
m_combo1.SendMessage(WM_SETFOCUS, 0, 0);
m_combo1.Clear();
m_combo1.RemoveFromMRU(f_name);
m_combo1.RefreshCtrl();
}
END_CATCH
return false;
}
while (!asleep)
code();
|
|
|
|
|
I believe that the problem you are having is caused by the e->Delete(); line. It has been a while since I have used MFC style exceptions, but I believe that the MFC macros automatically call the delete function for you through the MACRO.
Look at how the macro is defined I bet it expands to include a call to Delete.
This is correct if you are using standard C++ exception blocks
try
{
}
catch(CException* pE)
{
}
but not the MFC way.
You have probably just been unluck not to find if before.
|
|
|
|
|
Matt,
Thanks. you were spot on. stdafx.h is where delete() is called, in the deinfition of the END_TRY macro. I guess I got confused between standard C++ exception handling and the MFC macros.
I double checked and found that I'd actually been running the debug build on W2K, which explains why it hadn't crashed before (the release build does).
Curiously, and maybe you know the answer to this as well , in the debug build the message box popped up by ReportError() includes the message:
<path\filename> contained an invalid path
but the release version just has an empty message box with the warning icon and an OK button - no message.
while (!asleep)
code();
|
|
|
|
|
Where should you put initialization code for a new dialog in my program? The classwizard wont make any OnInitDialog(). I tried to put it in the constructur and even in the WM_CREATE function, but it crashes the program. help...
|
|
|
|
|
Usually it is put in OnInitdialog. I think, your program is crashing due to some other problems.
|
|
|
|
|
Are you talking about initializing the data in the window of a dialog? If so, the you do want to place this in the OnInitDialog handler. I think that you should take one more look at the classwizard to see if you can create the OnInitDialog handler for you.
Otherwise manually edit the message handlers and add a handler for the WM_INITDIALOG message.
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!
|
|
|
|
|
You need to be more specific on some issues:
tordyvel wrote:
Where should you put initialization code for a new dialog in my program?
That depends entirely on the data and when it's being used.
tordyvel wrote:
The classwizard wont make any OnInitDialog().
What do you mean by this? In Visual C++ .NET, any dialog's created from a dialog template do not by default have OnInitDialog handlers. Is this what you mean? If that is the case, you can add the handler from the dialog class' Properties dialog. If not, you need to let us know what you mean when you say that the Class Wizard "wont make any OnInitDialog".
tordyvel wrote:
I tried to put it in the constructur and even in the WM_CREATE function, but it crashes the program. help
How exactly does it "crash". GPF? ASSERT? We need more details if someone is going to be able to help you.
Cheers,
Tom Archer
Author - Inside C#, Visual C++.NET Bible
A total abstainer is one who abstains from everything but abstention, and especially from inactivity in the af
|
|
|
|
|
Hi
I have made an database application that works with a lot of different data.
I would now like to make a new window that should be able to show calculation results based on this data.. I wonder what kind of View should I use
( I would like to put the data in some kind of grid) note i would not like to use CRecordView..
Could someone please help this Rookie
Best regards
Henrik
|
|
|
|
|
You can either use and activeX control like MSDataGrid, Hierarchial data Grid etc. or you can Use Chris Maunder's grid available in this site.
|
|
|
|
|
I am attempting to "port" an mfc application to windowsXP and everything runs fine, but there are a few finer points of the UI that aren't correct.
For example:
The menu background color and the toolbar button face colors aren't correct. They are darker than they should be (but the gripper is correct). Also, the 3d bevel along the bottom edge of the lowest toolbar looks different on the gripper than on the rest of the toolbar.
I've written a manifest and that gives me the new button, scrollbar, etc. style, but the affore mentioned issue remains.
Has anyone seen an article from Microsoft addressing this issue? (I searched MSDN to no avail.) Any guidance would be appreciated.
|
|
|
|
|
Use the TBSTYLE_TRANSPARENT flag:
if (!m_wndToolBar.CreateEx(this, TBSTYLE_FLAT | TBSTYLE_TRANSPARENT) ||
!m_wndToolBar.LoadToolBar(IDR_MAINFRAME))
{
TRACE0("Failed to create toolbar\n");
return -1;
}
HTH
--
Andrew.
|
|
|
|
|
The TBSTYLE_TRANSPARENT style flag makes no difference.
There's a subtle difference in the background color in my MFC application and Windows Explorer, Internet Explorer, Movie Maker and a few other applications that seem to be more targeted for XP. Let me point out that the toolbars in Visual Studio, all of the Office XP products, WordPad, Notepad, etc. are NOT the same color as the first set of apps that I mentioned. My application shares their colors, not what I'd consider the more correct colors.
|
|
|
|
|
How to open the MSWord application, by automation, into my own window ?
Thanks.
|
|
|
|
|
Get the Path of winword.exe in your computer and then Through Winexec function all that exe with it's path
Samir Sood
|
|
|
|
|
Get the Path of winword.exe in your computer and then Through Winexec function call that exe with it's path
Samir
|
|
|
|
|
To opne word in your MFC application, first you have to create an application which supports Doc/View architecture. Then use COleDocument instead of usual CDocument class. Find out the help for COleDocument. If still u find it difficult, then send me a mail.
|
|
|
|
|
I have made this checkbox on my app. It's a non MFC app. it just get light gray when i press it and turns white again when i release, what do i do?
Thankyou
|
|
|
|
|
Either BS_AUTOCHECKBOX has not been specified in the style or you have code that is resetting the state.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
Oh, thankyou It was the AUTOCHECK
|
|
|
|
|
What function/message shall i use?
|
|
|
|
|
For non-MFC apps, look at the BM_GETCHECK and BM_SETCHECK messages.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|