|
I want to konw how to clear my view's content,anyone help me?thx.
YES, I am here.
|
|
|
|
|
What kind of view?
It could be as simple as calling SetWindowText(hWnd, ""); It could be as involved as destorying all your internal document objects and calling Invalidate(FALSE);
Unless you are using one of the MFC provided control-views (tree view, edit view, list view), you are doing all the drawing yourself in the OnDraw function. If that is the case you will have to do whatever you need to do to blank the screen.
For CEditView, just SetWindowText, for CTreeView I believe it is DeleteAllItems and for CListView I believe it is DeleteAllItems also.
Look in MSDN for more info.
|
|
|
|
|
Everytime I try to step into the VC7 source code (MFC/CRT) in the debugger, VC7 demands that I insert a CD (actually, it tells me it can't find the file, and points to a location on the f: drive, which is even more puzzling, since my CD is the D drive..., and I don't have an F:/ drive). Or sometimes it simply breaks into disassembly code, rather than showing me source. As far as I can tell, the MFC and CRT source code is present on my machine. Does anyone know why VC7 can't find it?
TIA -
|
|
|
|
|
It's very frustrating. I get the same thing when debugging. VC will come up and say that it can't find a given INL or H file. I'm like "You installed the damn files! How can you not find them?!" Typically, I simply need to point to the correct include folder, but it's stil annoying nonetheless. There's no doubt that VS.NET was rushed to market as it has numerous bugs
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 there ...
I load a bitmap, transparently ...
Here is my source code:
[ccode]
UINT nStyle = LR_LOADFROMFILE | LR_LOADTRANSPARENT;
HBITMAP hBitmap = (HBITMAP)LoadImage(AfxGetInstanceHandle(), lpszPath, IMAGE_BITMAP, 0, 0, nStyle);
[/ccode]
But when i draw it, i can't see my transparent bitmap
[ccode]
// m_Board is my object from my own structure
// dcSource is CDC object ...
// bm is BITMAP object ...
// There isn't problem for drawing picture ...
// I just want to draw it transparently !
dc.BitBlt( 10, 10, m_Board.bm.bmWidth, m_Board.bm.bmHeight, &m_Board.dcSource, 0, 0, SRCCOPY );
[/ccode]
Help me, please
My month article: Game programming by DirectX by Lan Mader.
Please visit in: www.geocities.com/hadi_rezaie/index.html
Hadi Rezaie
|
|
|
|
|
LR_LOADTRANSPARENT is missleading, as all it really does is change colors. From MSDN:
LR_LOADTRANSPARENT Retrieves the color value of the first pixel in the image and replaces the corresponding entry in the color table with the default window color (COLOR_WINDOW). All pixels in the image that use that entry become the default window color. This value applies only to images that have corresponding color tables.
Do not use this option if you are loading a bitmap with a color depth greater than 8bpp.
So this is probably not what you want (although it can be useful on occasion). This article may provide you with something useful though.
--------
I don't think that I'm a sell-out but I do "Enjoy Coke!"... -- Bloodhound Gang, The Inevitable Return Of The Great White Dope
|
|
|
|
|
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.
|
|
|
|