|
Take a look at the CRectTracker class which is used by windows to handle the inverting etc.
Roger Allen
Sonork 100.10016
WHats brown and sticky?
A stick or some smelly stuff!
|
|
|
|
|
How can I refresh the dialog in an MFC 6 application?
What happens is that I present a dialog box with the result of many checks on the system, but the dialog is not displayed until all the checks are finished. I want it to appear as the checks are performed.
How can I do this?
thanks
|
|
|
|
|
One way is to move the code that does the checks out of the OnInitDialog function and into it a message handler that you post to yourself. Let me show you what I mean:
#define WM_AFTER_SHOWING WM_USER + 769
....
BEGIN_MESSAGE_MAP(CMyDlg, CDialog)
...
ON_MESSAGE(WM_AFTER_SHOWING, OnAfterShowing)
END_MESSAGE_MAP()
BOOL CMyDlg::OnInitDialog()
{
CDialog::OnInitDialog();
PostMessage(WM_AFTER_SHOWING);
return TRUE;
}
LONG CMyDlg::OnAfterShowing(UINT, LONG)
{
return 0;
}
Regards,
Alvaro
All you need in this life is ignorance and confidence, and then success is sure. -- Mark Twain
|
|
|
|
|
It's better to use thread.
BOOL CMyDlg::OnInitDialog()
{ CDialog::OnInitDialog();
AfxBeginThread(Refresh, NULL);
return TRUE;
}
UINT CMyDlg::Refresh(LPVOID param)
{
return 0;
}
you must declare Refresh as static member function.
A. Riazi
|
|
|
|
|
Yes, a separate thread is another option, but since MFC does not support multiple threads, it could cause problems when accessing GUI components via the thread. I just took the safer approach, which works fine.
Regards,
Alvaro
All you need in this life is ignorance and confidence, and then success is sure. -- Mark Twain
|
|
|
|
|
Thanks you very much.
I already solved it with the previous solution, but I appreciate your help a lot.
n
|
|
|
|
|
|
Thanks very much, Alvaro.
It works great.
I appreciate it
n
|
|
|
|
|
I get this message everytime I try to look up something in the MSDN: "An active X control on this page might be unsafe blah blah, do you want to allow this interaction?"
I changed all the active X security settings already to "enable" but this has no effect.
Anyone know how to disable this?
Thanks
|
|
|
|
|
hello
How can i draw a rectangle selection with the mouse, like in windows explorer when we want to select folders.
i try :
CDC dc;
...
dc.Rectangle(m_ptMouse.x,m_ptMouse.y,m_ptLast.x,m_ptLast.y);
but i can't get a transparent rectangle.
and if i try :
dc.MoveTo(m_ptMouse.x,m_ptMouse.y);
dc.LineTo(m_ptMouse.x,m_ptLast.y);
dc.MoveTo(m_ptMouse.x,m_ptMouse.y);
dc.LineTo(m_ptLast.x,m_ptMouse.y);
dc.MoveTo(m_ptMouse.x,m_ptLast.y);
dc.LineTo(m_ptLast.x,m_ptLast.y);
dc.MoveTo(m_ptLast.x,m_ptLast.y);
dc.LineTo(m_ptLast.x,m_ptMouse.y);
i get all the intermediary rectangles.
if you know how draw a rectangle selection like in windows explorer which is transparent.
|
|
|
|
|
Look up DrawFocusRect() which does the rubber-band style rectangle.
--Mike--
The Internet is a place where absolutely nothing happens.
-- Strong Bad
1ClickPicGrabber - Grab & organize pictures from your favorite web pages, with 1 click!
My really out-of-date homepage
Sonork-100.19012 Acid_Helm
|
|
|
|
|
thx !
but i have the same problem
all the rectangle stay display, i would like to have only the last rectangle.
you know how to refresh the screen?
|
|
|
|
|
Hi Everybody,
I have a question concerning MFC and its paint message. I have been working on an OpenGL application that runs a Dialog Box, with various MFC controls and an OpenGL CFrameWnd running next to the controls. The program works great when the Program has focus, but, when the program is not active the CPU usage goes upto 100% by calling OnPaint repeatedly. I have the OpenGL rendering set to use the following three messages: ON_WM_ACTIVATEAPP(), ON_WM_NCACTIVATE(), ON_WM_ACTIVATE(). These trigger flags that disable the OpenGL rendering so I know that the graphical side is not an issue.
When I mimimize the program the Paint messages stop flooding in, but when the program is in the background the Paint messages pour in. Does anyone know how to prevent the WM_PAINT messages from being sent when the window, dialog, or program is not active?
|
|
|
|
|
Well, it could be that yout not validating the window area after processing a WM_PAINT message. If you don't do that then you get another WM_PAINT from the system. Check that you use either a CPaintDC in your WM_PAINT handlers or call ValidateWindow() in them (CPaintDC does this for you in the destructor).
Roger Allen
Sonork 100.10016
WHats brown and sticky?
A stick or some smelly stuff!
|
|
|
|
|
I call Invalidate(FALSE) after each frame. Would that do the same thing?
|
|
|
|
|
That is probably your problem.
Calling invalidate invalidates the entire window, and instructs it to repaint the entire window. The false indicates that you do not need the windows background to be erased.
The most important thing to remember with WM_PAINT is that it is not really a message that gets entered into the message queue. Windows only generates that message on a thread when there are no other messages, and a window has an invalid region. In order to prevent the WM_PAINT Message from being called, simply validate the window region with the ValidateRect and ValidateRgn functions.
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!
|
|
|
|
|
Hi All,
I'd like to write a Visual C++ Add-In where I could retrieve the name of the current file edited.
i looked into the articles in CP, but i really do not know where to start, since i'm not familiar with COM at all.
Any help ?
~RaGE();
|
|
|
|
|
our user asks us to develop a program which can dynamically change html help files to windows help files (*.hlp).
html help files are in fixed format (similar to java help document).
once he thinks a html page useful, he uses our program to input (open) the page, then output a *.hlp file which can be viewed as normal windows help file with contents, index and find.
we prepare to use raw method: read the html page buffer then format it to *.hlp directly by c++.
but it needs a lot of things to do - we even don't know the format of a *.hlp file.
is there an easier way than our plan?
thx.
includeh10
|
|
|
|
|
As your working with small html files it could be you could generate a small .hpj project and get help workshop to build it for you (see MSVC->Tools->Help workshop). There may be some issues in using the MS tool to do this.
Roger Allen
Sonork 100.10016
WHats brown and sticky?
A stick or some smelly stuff!
|
|
|
|
|
If you would be happy with the new help format (*.CHM), then as Roger Allen said you can "simply" create
a HPJ file describing all the html / pic files you want to crunch together using the help compiler that
came with VC++.
If you really want the old style help (*.HLP) then I would recommeng going via rich text format. This
is well documented (though don't ask me, I used Word 2.0 to save as RTF!) and may be easier for you to
generate. You would still need to generate a contents file etc, so the CHM route should be easier.
I presume you aren't making a help file from each individual html file...
Good luck,
Iain.
|
|
|
|
|
How can I make my MFC (statically linked) exe file occupy less space in disk? The minimum I've gotten is 2 Mb, but I've seen exe file (statically linked MFC) around 200 Kb.
Any ideas?
Thanks a lot.
|
|
|
|
|
Are you building your exe in Release or Debug? Release will be much smaller than Debug mode...
|
|
|
|
|
Will it still be statically linked?
How do I change it to release mode?
Thanks!
|
|
|
|
|
Done! Thanks!
Geez! It wasn't that hard. Sorry fro asking such a newbie question.
Thanks a lot!
|
|
|
|
|
i see you are here for long with many questions, but u don't know release, unbelievable !!!
includeh10
|
|
|
|