|
While I've never had to do what you're doing, two things come to mind
1. Queue up the display of multiple windows with DeferWindowPos()
2. In the parent, change the erase background code to create a region that exclude the area of the child windows - I neat trick for dealing with excessive flickering when resizing a dialog.
I hope this helps
[ Jason De Arte | Toy Maker | 1001010.com ]
|
|
|
|
|
Jason De Arte wrote:
2. In the parent, change the erase background code to create a region that exclude the area of the child windows - I neat trick for dealing with excessive flickering when resizing a dialog.
Isn't WS_CLIPCHILDREN supposed to do this... I've a couple of dialogs which I want flicker free. WS_CLIPCHILDREN doesn't always help me. Say, you don't have a small dialog sample anywhere you'd like to show me, or better yet, write an article about it?
--
Arigato gozaimashita!
|
|
|
|
|
Jörgen Sigvardsson wrote:
Say, you don't have a small dialog sample anywhere you'd like to show me, or better yet, write an article about it?
When I have some time, I might write a small article - but it's realy easy to do for most controls (except group boxes) on your resizing dialog.
1. In your WM_ERASEBKGND handler...
2. Create a region of the client area
3. For each valid & visible child window you want to exclude,
3.a. create a region of that window (try GetWindowRgn, XP Themes tends to make buttons round)
3.b. remove the child region - CombineRgn(rgnChild,rgnDlg,RGN_XOR)
4. Paint your background, I use FillRgn
5. return TRUE from WM_ERASEBKGRND, or all your work will be undone.
Minor details were left out, but you'll get the idea.
[ Jason De Arte | Toy Maker | 1001010.com ]
|
|
|
|
|
I think I understand the idea. Now the question is; is this applicable for other controls than dialogs? I've had controls on resizable tab controls, and the flickering has been so bad. For this to work I need to be able to draw theme backgrounds using regions (tab controls have gradient backgrounds in XP). Seeing that the theme APIs don't make use of regions, I suppose I will have to give the HDC a clipping region. Do you know if that is possible? I'm guessing that selecting (SelectObject) a region will cause DC operations to be clipped by the region. (I'm really lost when it comes to advanced GDI )
--
Arigato gozaimashita!
|
|
|
|
|
I want to use a button or link on the HTML page to invoke an action contained on my custom tool bar. Using JavaScript, how can I get a reference to the toolbar?
I've reviewed the the article and source code at http://www.codeproject.com/atl/dahlia.asp[^].
I see that the developer somehow injects a property into the document that has a reference to the control into the top window's document, but I can't understand the cpp code that does it.
I've written my toolbar with c# and a COM wrapper, as I'm not a c++ man.
Thanks,
Mark Varvil
|
|
|
|
|
What I've done is have the toolbar listen for navigaion events, then have the link in the page navigate to some special URL like:
<a href="http://--toolbarcommand--/commandname">Click here</a>
When the toolbar sees the "--toolbarcommand--" part in the OnBeforeNavigate2 event, it cancels the navigation and executes the command.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
Four fonts walk into a bar. The bartender says "Hey - get out! We don't want your type in here."
|
|
|
|
|
how do I solve the problem like:
error C2970: 'IDispEventImpl' : template argument 'plibid' : invalid address of static variable 'LIBID_MoticMotorLib'
error C2065: 'DIID__IStageEvents' : undeclared identifier
.....
thanks!
andy_cn
|
|
|
|
|
want to retieve currently written text in iexlorer address bar when user
press enter button or click go button
pls help
-----------------------------
"I Think It will Work"
Formerly Known As "Alok The Programmer" at CP
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
1. How about writing an application that connects to running instance of IE and use DWebBrowserEvents2 interface.
2. Write a plugin for IE that uses DWebBrowserEvents2 interface
You can check out IE programming articles on www.codeguru.com
Hope this helps
-------------------------
Have a great day ahead!
Regards,
Sohail Kadiwala
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Thanks Sohail for this great help
-----------------------------
"I Think It will Work"
Formerly Known As "Alok The Programmer" at CP
-----------------------------
Alok Gupta
visit me at http://www.thisisalok.tk
|
|
|
|
|
I saw your website.. found some common interest and hurdles as well
[Game programming and no scope for these domains in India]
-------------------------
Have a great day ahead!
Regards,
Sohail Kadiwala
modified 21-Apr-21 21:01pm.
|
|
|
|
|
Hi,
I have a rather large bitmap (1MB) that I need to use in my project. A gif would be much smaller and I was wondering if there was a way to use a gifs in the project resources.
If so, how? The image is beign used as a dialog background.
Thanks!
|
|
|
|
|
I am creating the control based on SysListView32. Can some tell me how can i draw the subitems in OnDrawItem event.
|
|
|
|
|
|
Thanks.... I have try this code it works fine... but When i tried to draw a rectangle around the subitem in POSTPAINT event it did not work.
Please see the code below
<br />
else if ( (CDDS_ITEMPOSTPAINT | CDDS_SUBITEM) == pLVCD->nmcd.dwDrawStage )<br />
{<br />
if ( 0 == pLVCD->iSubItem )<br />
{<br />
RECT rc;<br />
HPEN newPen, oldPen;<br />
newPen = CreatePen(PS_SOLID,1, RGB(0,0,0));<br />
oldPen = (HPEN)SelectObject(pLVCD->nmcd.hdc, newPen );<br />
Rectangle(pLVCD->nmcd.hdc, pLVCD->nmcd.rc.left, pLVCD->nmcd.rc.top, pLVCD->nmcd.rc.right, pLVCD->nmcd.rc.bottom);<br />
SelectObject(pLVCD->nmcd.hdc, oldPen );<br />
<br />
}<br />
else if ( 1 == pLVCD->iSubItem )<br />
{<br />
<br />
HPEN newPen, oldPen;<br />
newPen = CreatePen(PS_SOLID,1, RGB(0,0,0));<br />
oldPen = (HPEN)SelectObject(pLVCD->nmcd.hdc, newPen );<br />
Rectangle(pLVCD->nmcd.hdc, pLVCD->nmcd.rc.left, pLVCD->nmcd.rc.top, pLVCD->nmcd.rc.right, pLVCD->nmcd.rc.bottom);<br />
SelectObject(pLVCD->nmcd.hdc, oldPen );<br />
<br />
}<br />
<br />
<br />
*pResult = CDRF_SKIPDEFAULT;<br />
}<br />
Please tell me whats wrong with this code....
Secondly can i display combo on one of the column using the CustomDraw event.
|
|
|
|
|
Check the rectangle that you're drawing. From the docs for NMCUSTOMDRAW :- rc
- RECT structure that describes the bounding rectangle of the area being drawn. This member is initialized only by the CDDS_ITEMPREPAINT notification. Version 5.80. This member is also initialized by the CDDS_PREPAINT notification.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
"Kosh reminded me of some of the prima-donna programmers I've worked with. Knew everything but when you asked them a question; never gave you a straight answer."
-- Michael P. Butler in the Lounge
|
|
|
|
|
I am doing it in hardest way by capturing the OnDrawItem event.
i am trying to dislay the Combos over the cell in this event, but problem is that when i resize the other column combos did not refreshed properly. What is the solution for this.
thanks
|
|
|
|
|
Hi,
I'm not an expert in GDI raster operations, so please excuse the lame question...
Well, I have ::DitherBlt() and ::TransparentBlt() at my disposal, as well a background COLORREF and/or a masked bitmap where all transparent bits are black (coming from a masked image list using ::ImageList_GetImageInfo()).
Can anyone point me in the right direction to combine both functions, so as to draw a disabled bitmap transparently?
Cheers.
--
Maxime Labelle
maxime.labelle@freesurf.fr
|
|
|
|
|
|
|
I've got a little app that I want to use a minimal amount of memory. I have one function that creates COM object (CComPtr), uses it, then returns, the memory used by the program (in Task Manager) jumps up about 1.5 MB, but never drops back down. It's not simply a leak, because calling the function many times doesn't cause the memory usage to grow.
Another question along these lines: I've seen some programs (like smss, lsass, cmd and EmEditor when minimized) that are able to use a relatively small amount of memory, but when I create a simple "hello world" program (without MFC or any other framework slop) with MSVC or Borland's compiler, it uses at least 2 MB. Anyone know what trick is being used in these?
Matt Gerrans
|
|
|
|
|
When you free memory or release COM objects, the memory manager doesn't immediately remove that used memory from your working set. It assumes that you will probably request memory again pretty soon, which is true for most apps. To trim unused memory from your working set, call SetProcessWorkingSetSize(GetCurrentProcess(), -1.-1) or use the /WS linker switch.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
Laugh it up, fuzzball.
You cannot stop me with paramecium alone!
|
|
|
|
|
Arigato Gozaimashita Michael-san. That's a little gem my colleague will appreciate.
Do you know why a process drops a lot of memory when its windows are minimized by the way? Open task manager, and look at let's say devenv.exe. Minimize it and you'll see a huge drop in memory consumption. Do you have any idea what that's all about? I suppose it's just a "trick" as the VM size doesn't change a bit.
--
Arigato gozaimashita!
|
|
|
|
|
Iie, dou itashimashite!
I remember seeing on RaymondC's blog that when you minimize a window, its memory is immeidately marked for swapping, so it will be one of the first bits of memory swapped to disk if some other app needs more physical RAM.
OT: I think you asked a while ago about the spalling of "gozaimashita". There is a pronunciation rule that [i] and [u] become voiceless between voiceless sounds. So in "shita", [i] is between [sh] and [t] (both voiceless) so the [i] becomes voiceless as well, and the sound blends into the [sh] part. (Sorry if this is too technical, I don't really know how to explain it without using linguistic terms.)
When you write "gozaimashita" it is 6 characters (go-za-i-ma-shi-ta) and the romanization reflects that.
--Mike--
Personal stuff:: Ericahist | Homepage
Shareware stuff:: 1ClickPicGrabber | RightClick-Encrypt
CP stuff:: CP SearchBar v2.0.2 | C++ Forum FAQ
----
"Linux is good. It can do no wrong. It is open source so must be right. It has penguins. I want to eat your brain."
-- Paul Watson, Linux Zombie
|
|
|
|
|
Michael Dunn wrote:
When you write "gozaimashita" it is 6 characters (go-za-i-ma-shi-ta) and the romanization reflects that.
Ah, so basically, "shi" is a hiragana(?) character, and "shi" is its name? I guess the same applies to our alphabet. H's name is "age", but it's not pronounced that way when used as part of a word.
Michael Dunn wrote:
There is a pronunciation rule that [i] and [u] become voiceless between voiceless sounds.
Do you know the official explanation of why [u] isn't pronounced in words such as desu? I read on a webpage that only speakers of old dialects pronounce [u], and that it has apparently been optimized away with time. The web page I read it on didn't seem all that serious (rude japanese expressions was a large part of the repertoire).
--
Arigato gozaimashita!
|
|
|
|