|
When I use the function "accLocation" in an HTML page,
I get the points: top and left, that refer to the part of the page that I can see.
how can I get the points that refer to the beginning of the page?
For example:
I have a long html page (5000 points),
and I scrolled down.
We can see the points from 2500 to 3500.
I have an object that its top is 2700,
When I run the function "accLocation" I get the top 200.
How can I get the full measurement 2700?
Thank you
Chagit
|
|
|
|
|
Hi all,
I'm trying to use the ::AlphaBlt function to perform a simple fade effect on the screen. Basically I need to create a transition between the current bitmap on a dc, and a new bitmap which is to "fade in".
I have hacked up the following code, and it works somewhat. The problem is that it is not smooth. Also, it takes way toooo much cpu to do, and this causes inconsistencies in timing. Usually in runs in about a few seconds at 1024x768, but on some machines at 1280x1024, it takes 10 seconds or worse!
Here's the code. Hopefully it won't be too hard to read through the irrelevant stuff...
void
cPkpPhotoImage::BlitStretchedFromProprietaryBlitEffectFade(CDC& DestDc,
const cRect& PassedSourceRect, const cRect& DestRect, uint32 rop,
const sEffectInfo& EffectInfo)const
{
LBitmap* Bitmap = GetBlitBitmap();
if(!Bitmap)
{
// Should not get here.
ASSERT(false);
}
else
{
cSize ThisSize = GetCurrentImageSize();
cRect SourceRect(ThisSize);
BLENDFUNCTION BlendInfo;
BlendInfo.BlendOp = AC_SRC_OVER;
BlendInfo.BlendFlags = 0;
BlendInfo.AlphaFormat = 0;
BlendInfo.SourceConstantAlpha = (BYTE)grain;
CDC ThisDc;
if(LockDcInternal(ThisDc, Bitmap))
{
cTimer Timer;
cTimeTag WhenCanProgress;
cBitmap NoFlickerBitmap(DestDc, DestRect.GetSize());
cDC NoFlickerBitmapDc(&NoFlickerBitmap, &DestDc);
// First copy what's in the dest dc onto our temporary bitmap so we
// can do the fade.
NoFlickerBitmapDc.BitBlt(0, 0, DestRect.GetWidth(),
DestRect.GetHeight(), &DestDc, DestRect.left, DestRect.top, rop);
int numIterations = ((256 / grain) * 2) + 1;
for(int i = 0; i < numIterations; i++)
{
// Do the alpha blend onto the temporary bitmap.
::AlphaBlend(NoFlickerBitmapDc.m_hDC, 0, 0,
DestRect.GetWidth(), DestRect.GetHeight(), ThisDc.m_hDC,
SourceRect.left, SourceRect.top, SourceRect.GetWidth(),
SourceRect.GetHeight(), BlendInfo);
// Now we wait a bit if we're too quick. Note that we do as much
// processing before waiting, to ensure delay accuracy.
for(;;)
{
if(Timer > WhenCanProgress)
{
// Can progress.
break;
}
else
{
int sleepTime = -(Timer - WhenCanProgress);
if(sleepTime > 0)
{
::Sleep(sleepTime - 2);
}
}
}
// Then blit that bitmap onto the dest dc.
DestDc.BitBlt(DestRect.left, DestRect.top, DestRect.GetWidth(),
DestRect.GetHeight(), &NoFlickerBitmapDc, 0, 0, rop);
WhenCanProgress = cTimeTag(Timer, delay);
}
// Now do the final, non-transparent blit.
{
DestDc.StretchBlt(0, 0, DestRect.GetWidth(), DestRect.GetHeight(),
&ThisDc, SourceRect.left, SourceRect.top, SourceRect.GetWidth(),
SourceRect.GetHeight(), rop);
}
UnlockDcInternal(ThisDc, Bitmap);
}
}
}
Note that I use NoFlickerBitmap (cBitmap is just an extended version of CBitmap), into which I create the composite semi faded image. This image I then opaquely blit onto the destination dc. I have to do this because ::AlphaBlend() doesn't do a nice clean blit; rather it does some kind of iterative scan, which can be seen and looks quite ugly.
One way I could do this is create a window over the region i was to fade, and just use the dialog fading code article. Unfortunately, this seems kind of like a hack, and I'm reluctant to do it. There must be a better way!
Thanks!
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
Nothing constructive in this post, as I don't use GDI or GDI+, but...
DirectX is funner!
-Domenic Denicola-
Geek^n
http://madhamster.50megs.com
"Any technology that is indistinguishable from magic is insufficiently advanced..."
|
|
|
|
|
Hi Coders,
Did somebody know how to retrieve the IE Settings from the registry and where they are located in the registry ??
thanx a lot.
Best Regards
Sonu
|
|
|
|
|
The exact location varies from release to release, and it is not guaranteed to remain stable on future updates, so it is safer to use <a href="http://msdn.microsoft.com/workshop/networking/wininet/reference/functions/internetqueryoption.asp">InternetQueryOption</a> for retrieving IE settings.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
maybe you will find the reg-entries here but beware of different locations at othe ie-versions
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\...
the win32 API provides a lot of functions to access reg-entries like RegOpenKey(), RegCloseKey() and so on ... see MSDN for more
Stay heavy ... RockNix///
---------------------------------
Look out for free Win32
Serial Communication Module
for VC++ or Borland C++ Builder
on http://www.klangwerker.de
-------------------------------
|
|
|
|
|
I Have a CListCtrl on a FormView, have used Class wizard to create on right click event, I also have added code to this event that creates a pop up menu, the thing is I want the Popup menu to be in the location of the Right mouse click ?
I sure that the mouse location passed to the function as part of NMHDR* pNMHDR
Any help please???????;P
Tricky Dicky
|
|
|
|
|
Why not just use the ::GetCursorPos() api function? It will return the current mouse position, which you can convert to client coordinates via a call to ScreenToClient().
Cheers,
swinefeaster
Check out Aephid Photokeeper, the powerful digital
photo album solution at www.aephid.com.
|
|
|
|
|
Thanks Worked a treat (no need to do ScreenToClient)
Tricky Dicky
|
|
|
|
|
cast to the right structure first:
NM_LISTVIEW* pNMListView = (NM_LISTVIEW*)pNMHDR;
then take
pNMListView->ptAction
:wq
|
|
|
|
|
Hi,
I need to know how can I link together all the dependent libraries of an EXE file in the way to only carry the EXE file betwen computers (not a special installation file but the same EXE with the libraries within).
Anybody knows how to arrange this simple problem?
Thanks in advance.
Edgar
Edgar Berengena Moreno
Software Engineer
La Salle University, URL.
Barcelona, Spain.
|
|
|
|
|
Anybody knows how to arrange this simple problem?
IMHO this is no simple problem at all, if you're referring to linked DLLs.
For MFC and the C run-time library, you can choose static linking, which produces an EXE that does not depend on the MFC and C run-time DLLs.
As for other DLLs, I guess the closest you can get to what you want (without getting into a real mess) is having a packed installation EXE like those produced by InstallShield and similar products.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Hi,
First of all thank you for your reply.
I've been searching information on static linking, but I couldn't find how to do it. Do you know which is the way?, that's the solution I need...
Thank you again.
Edgar
Edgar Berengena Moreno
Software Engineer
La Salle University, URL.
Barcelona, Spain.
|
|
|
|
|
MFC: Project->Settings->General tab->Microsoft Foundation Classes combobox.
C run-time library: Project->Settings->C/C++->Category:Code Generation->Use run-time library combobox.
Un saludo, suerte con el proyecto.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Gracias!
...no era tan difícil! (la próxima vez no me saltaré la pestaña de General tan a la brava).
Gracias otra vez por el esfuerzo.
Edgar
Edgar Berengena Moreno
Software Engineer
La Salle University, URL.
Barcelona, Spain.
|
|
|
|
|
My application needs that i use a ComboBox and ListBox.The ComboBox will display a drive or directory in the system and my listbox will display all the subdirectories.This comboBox and listbox get displayed in a Dialog application. There is a function called CWnd::DlgDirListComboBox .As per documentation this is supposed to load a directory.
there are 2 classes in my application
CForDialog and CForApp .
I used this line of code inside InitDialog in CForDialog class .......throws unhandled exception
this->DlgDirListComboBox(_T(""),IDC_COMBO1,IDC_LIST1,DDL_DIRECTORY|DDL_EXCLUSIVE);
can u help
|
|
|
|
|
1. How can I get a rotated standard region(such as: ellise region, roundrect region)?
--------------------------------------------------
HRGN hRgn = CreateRectRgn(0,0,220,120);
DWORD size = GetRegionData( hRgn, 1, NULL);
RGNDATA *pData = (RGNDATA*)GlobalAlloc(GMEM_FIXED|GMEM_MOVEABLE,size);
GetRegionData(hRgn, size,pData);
double a = 0.5; // 0
xform.eM11 = (float)cos(a);
xform.eM12 = (float)sin(a);
xform.eM21 = -xform.eM12;
xform.eM22 = xform.eM11;
xform.eDx = 0;
xform.eDy = 0;
HRGN hNewRgn = ExtCreateRegion(&xform,pData->rdh.nRgnSize,pData);
// failure! why ?
GlobalFree(pData);
DeleteObject(hRgn);
DeleteObject(hNewRgn);
2. when a modeless dialog is visible, I click mouse outside the dialog ,
windows send what message by the dialog?
------------------------------------------
my email is wang_yi_ming@263.net
Thank you very much!
|
|
|
|
|
1. Are you testing this on a 9x/ME machine? ExtCreateRegion only supports rotations on NT/2000/XP. Writing a routine to perform the rotations on a RGNDATA variable is not terribly difficult, however.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
here's what i got, an MFC dialog with an edit box, a display button.
what it's supposed to do:
i enter text into the edit box and click the display button, a new messagbox like window pops up displaying the text. i can't get the text to transfer, also on a side note, i have to make a menu item that when clicked displays a message if nothing if entered into the edit box. any help please, some code example would help even more. thnx in advance
|
|
|
|
|
If you have associated a CString variable to your edit control, then try calling UpdateData(TRUE) on your OnDisplayButton handler before doing anything else.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
the edit ID is IDC_EDIT1 in the the dialog:
CString editText;
GetDlgItemText(IDC_EDIT1,editText);
|
|
|
|
|
Hello all,
I am experiencing a problem with one of the dlls in my project. It's a COM dll (written in VC++, compiled under Win2000 as MinDependency) that uses winsock and wininet, and when I try to regsvr32 it under Windows 95, it gives a "LoadLibrary failed (error 485)" message. All other dlls register properly. Windows 98, NT, 2000 have no such problem.
Here's what is specified in its Object/Library modules list: "wininet.lib Ws2_32.lib"
The system with problems has IE5 installed, so I don't think it's wininet that causes problems.
So, does anyone know how to solve it in the best way?
Help is greatly appreciated.
Volodya Orlenko,
orlenko [at] hotmail [dot] com
|
|
|
|
|
ws2_32.lib links against Winsock library version 2.0, which is not shipped with W95 by default (Winsock baseline version for this OS is 1.1), so maybe this is what's causing the problem. Try installing the Windows Socket 2 Update for Windows 95.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
Thanks a lot. I'll experiment with that tonight.
Volodya Orlenko,
orlenko [at] hotmail [dot] com
|
|
|
|
|
Hello everybody!
How can I print multi-rows text with format as a CDC::DrawText() functions?
Best regards,
Eugene Pustovoyt
Sonork ID 100.10002:Yaumen
|
|
|
|
|