|
I'm afraid comboboxes do not admit having this style changed after creation. Why it is not an option having the corresponding check box ("Auto HScroll") checked on design time? Other solutions like overriding PreCreateWindow or PreSubclassWindow won't work eithr on your particular scneario.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
yeppa.
1.) PreCreate/PreSubclass was my first try
2.) i need this, because the WS_HSCROLL-style-bit has no checkbox in the properties-dialog for a combobox, but i need to enable WS_HSCROLL! the only possibility is to manually (!) insert WS_HSCROLL in the .rc-file (to the dialog-template definition) - which is kind of dowdy.
ps: erm, WS_HSCROLL can't be set after creation either...
:wq
|
|
|
|
|
Manually editing your .rc file is IMHO a perfect solution: the resource editor will preserve the flags you introduced, even if the control is changed later. I don't see that technique as "hacking" or anything like that --furthermore, it is the only solution you've got
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
How can I change color of only one cell in DBGrid?
|
|
|
|
|
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);
|
|
|
|
|