|
At least he was being honest!
"When I was born I was so surprised that I didn't talk for a year and a half." - Gracie Allen
|
|
|
|
|
I am/was never going to release it to the public, I don't want the leagal troubles. I started it to learn how winsock works, and it just grew. Alot of what is in the trojan now I will put in the Parental Control, like the keylogger, and file viewer.
wWw.KruncherInc.cOm
|
|
|
|
|
Regardless of your motives, I doubt that anyone here would help you write such an application, for fear that other people with more sinister motives might find the tips and use them in a destructive trojan. Sorry, but you're on your own here.
Ryan "Punctuality is only a virtue for those who aren't smart enough to think of good excuses for being late" John Nichol "Point Of Impact"
|
|
|
|
|
|
Hi all,
I am new to installshield developer 7..I want to launch few .msi files from a master .msi file or from setup.exe....
How do I do this...
thanks,
Shiva P
|
|
|
|
|
Hi Coders
I have a weird problem. I'm trying to emulate Explorer's TreeView and I can't seem to load the correct Shell icons on Windows XP. Some icons do load correctly, but "My Computer", "My Network Places" and "Control Panel" don't load (ie. they load the default unknown icon). The code I use for ALL icons is found below:
// Retreive the shell's system icon index
SHFILEINFO shInfo;
ZeroMemory(&shInfo, sizeof(shInfo));
if(SHGetFileInfo((LPCTSTR)Pidl, 0, &shInfo, sizeof(shInfo),
SHGFI_PIDL | SHGFI_ICON | SHGFI_SHELLICONSIZE | SHGFI_SMALLICON | SHGFI_SYSICONINDEX))
{
ImageIndex = shInfo.iIcon;
}
Does anyone know why some icons work but others don't?
|
|
|
|
|
|
The Pidl comes from enumerating an IShellFolder. This is basically the code I used (with minor modifications to reduced space):-
void TShellTreeView::Enumerate(IShellFolder* ParentFolder)
{
LPITEMIDLIST Pidl = NULL;
LPENUMIDLIST Enum = NULL;
if(ParentFolder->EnumObject(Control->Handle, SHCONTF_FOLDERS, &Enum) != NOERROR)
{
while(SUCCEEDED(Enum->Next(1, &Pidl, 0)) == true)
{
if(Pidl == NULL)
break;
// Extract shell icon using SHGetFileInfo() ...
// See original post for code
}
// Free Pidl using global malloc
}
// Release Enum
}
Hope this helps
|
|
|
|
|
I have a window that I dont want people to resize. I have set up the size I want by changing the cx and cy values in the CREATESTRUCT and would like it to stay this size at all times. Just wondering how I might do that. Is it something in the CREATESTRUCT? I'm using VC++ 6, MFC doc/view.
Thanks a lot!
|
|
|
|
|
|
in the PreCreateWindow function
write:
cs.style &= ~WS_THICKFRAME;
WS_THICKFRAME is the flag for enabling sizing
so ...... disable it
|
|
|
|
|
I use the celebre memDC to avoid flickering in my DIALOG app.
I got the fickering out, but if i set the return value of OnEraseBkgnd() to false or true, the whole background is set to black, and on move it refreshes window with the contents of the window below. Any suggestion will be great.
NOTE: in my app i use a button-class that also uses the memDC. Could those two interfere in some way ?
|
|
|
|
|
Andre Massada wrote:
I use the celebre memDC to avoid flickering
Are you refering to http://www.codeproject.com/gdi/flickerfree.asp[^] or did you roll your own?
I wrote a tool a while ago that works great for figuring out what is going on with memory DCs and bitmaps. Check it out at http://www.codeproject.com/tools/imageviewer.asp[^]
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
http://www.codeproject.com/gdi/flickerfree.asp[^] - that's the one
|
|
|
|
|
I've tried it, but it tells me that ShowDC(memDC) is not defined, even if
i added the macro definition and the include line.
My OnPaint() looks like below. Is there anything worng with it ?
void CDecDlg::OnPaint()
{
if (IsIconic())
{
//CPaintDC dc(this); // device context for painting
CRect rect;
GetClientRect(&rect);
CPaintDC dc(this);
CRect rcClient;
GetClientRect(rcClient);
dc.SetMapMode(MM_HIENGLISH);
CMemDC pDC(&dc);
SendMessage(WM_ICONERASEBKGND, reinterpret_cast<wparam>(dc.GetSafeHdc()), 0);
// Center icon in client rectangle
int cxIcon = GetSystemMetrics(SM_CXICON);
int cyIcon = GetSystemMetrics(SM_CYICON);
int x = (rect.Width() - cxIcon + 1) / 2;
int y = (rect.Height() - cyIcon + 1) / 2;
// Draw the icon
pDC.DrawIcon(x, y, m_hIcon);
}
else
{
CTrayDialog::OnPaint();
}
//MovieWindowed.Repaint();
}
... well ?
|
|
|
|
|
Andre Massada wrote:
I've tried it, but it tells me that ShowDC(memDC) is not defined, even if
i added the macro definition and the include line.
Are you including it in the *.cpp file that you called ShowDC() from? There is no reason that I can think of the ShowDC() would not be defined.
I use it all the time with absolutely no problems.
Andre Massada wrote:
... well ?
Other than the fact that it does absolutely nothing but call CTrayIcon::OnPaint()?
Put a breakpoint somewhere in your code and try to trace it. You will find it is never called.
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|
|
I know .. it makes no sens for either why it says that is not defined from what i've looked.
You seem to know your way around these drawing things. Do you know some articles or something usefull about what should i do in "OnPaint " (i mean i have absolutely no clue on what should i write there). Any tip will be usefull. Thanks alot in advance.
|
|
|
|
|
Maybe PJ Arends could give us a hint ?
|
|
|
|
|
To avoid flickering, you have to set the return value of OnEraseBkgnd to FALSE: this will avoid your dialog to be erased by the MFC framework, which causes the flickering.
But once you return FALSE on OnEraseBkgnd, then you have to draw yourself the background of your dialog box when painting it.
Typically the OnPaint method wil begin like this (in the general case):
void CMyWnd::OnPaint()
{
CPaintDC dc(this);
CRect clipRect;
if(dc.GetClipBox(&clipRect) == NULLREGION)
return;
CMemDC pDC(&dc, clipRect);
pDC->FillSolidRect(clipRect, ::GetSysColor(COLOR_ACTIVEBORDER));
...
}
Note: you should never call directly the base class method during OnPaint: the way to do it is to use the function DefWindowProc
DefWindowProc(WM_PAINT, (WPARAM) pDC->GetSafeHdc(), 0);
Собой остаться дольше...
|
|
|
|
|
Thanks ... so that's what i have to do. That i understud. What i did not get is 2 things:
1. I don't need to init the clipRect with a GetClientRect(clipRect) ?
2. Should i use DefWindowProc(WM_PAINT, (WPARAM) pDC->GetSafeHdc(), 0) in a MFC application ? I've tested and saw that it needs no declaration, but where do i write the actual code for it?(the help for this is like 1/2page)
(BTW ... with your code on OnPaint and the return value of OnEraseBkgnd set to FALSE the flickering still persists)
Please let me know if you have ANY ideea.
|
|
|
|
|
1- The method CDC::GetClipBox will give you the rectangle to draw. The clipping region will be equal to the client area if everything needs to be redrawn.
2- I use DefWindowProc in some MFC code, like in a class derived from CListCtrl. You will also find this function in the sources of the MFC library. DefWindowProc is part of the Win32 API,and enables to call the default processing for the message.
Andre Massada wrote:
the flickering still persists
If the flickering still occurs, it could mean that something else is drawing on your dialog box. Another question is, what is flickering, is it the dialog box itself or the controls embedded in the dialog box?
Собой остаться дольше...
|
|
|
|
|
KaЯl wrote:
what is flickering, is it the dialog box itself or the controls embedded in the dialog box?
No, it's not the dialog box that flickers, some of the contrlols(picture control, some text controls). Do i have to control the flickering for each of them ? (the weird part is that if i do nothing on my OnPaint and return FALSE on OnEraseBkgnd, the background does not refreshes, but ALL the flickering is gone and the controls are OK)
|
|
|
|
|
So, you were right, the problem isn't that simple! The problem comes from the controls embedded in the dialog box, and how to redraw them, knowing than some like the static controls don't draw the background by themselves.
If we want to do the painting of the dialog box through the CmyDialog::OnPaint method, then we have to paint everything by ourselves (forget what I said about DefWindowProc, I was wrong, the MFC architecture doesn't use the WPARAM of the WM_PAINT message, it won't use the DC we are providing so we can't use the base class), the dialog box and its child windows. Sadly, I didn't found yet an easy solution to indicate to the child windows how to use the MemDC we build
Собой остаться дольше...
|
|
|
|
|
I'm using Visual C++.net 2002. I'm using CIni in an MFC from this site. http://www.codeproject.com/cpp/CIni.asp#xx909443xx. The problem I'm having is I Can declare the CStringArray in the function. Pass it to GetKeyNames. I'm unable to access any of the elements in the Array. Don't know If I'm declaring the array correct or not. I've tried to declare the CStringArray variable using the variable wizard. This allows me to access the elements but I'm unable to pass the array to GetKeyNames. Sort of new with C++ MFC. Any help would be great. This is the code so far. What I'm tring to do is get a list of the Keys in a section and display them in a Edit Control. Tried to get an anwser from the site forum but no response. Any help would be great.
void CRunProgramDlg::OnBnClickedOk()<br />
{<br />
<br />
<br />
<br />
<br />
<br />
LPTSTR Current = NULL;<br />
DWORD dwBuffer = 100;<br />
CString ArrayString;<br />
<br />
m_FindKey.SetSize(32,0);<br />
<br />
CStringArray ProfileSearch[1];<br />
<br />
CIni ini;<br />
ini.SetPathName("C:\\amrtemp\\file2.ini");<br />
ini.GetKeyNames("Routing Indicator",Current,dwBuffer);<br />
<br />
ini.GetKeyNames("Routing Indicator",m_FindKey);<br />
<br />
ini.GetKeyNames("Routing Indicator",ProfileSearch);<br />
<br />
<br />
<br />
<br />
<br />
ArrayString = m_FindKey.GetAt(1);<br />
<br />
ArrayString = ProfileSearch[1];<br />
<br />
m_strBrowse = ini.GetString("Routing Indicator", ArrayString,"Dev");<br />
<br />
<br />
<br />
UpdateData(FALSE);<br />
I'm at a loss I don't think I'm declaring the variables correctly.
|
|
|
|
|
nigma_x wrote:
Tried to get an anwser from the site forum but no response.
Patience young grasshopper.
You posted on friday afternoon. The author is probably away for the weekend.
nigma_x wrote:
//CStringArray declared in the function set array to 1
CStringArray ProfileSearch[1];
//When using this CStringArray in ProfileSearch I don't recieve an error here
ini.GetKeyNames("Routing Indicator",ProfileSearch);
ProfileSearch is a pointer to an array of one CStringArray objects.
nigma_x wrote:
//When using this CStringArray in GetKeyNames recieve error
// error C2664: 'void CIni::GetKeyNames(LPCTSTR,CStringArray *)
// const' : cannot convert parameter 2 from 'CStringArray' to 'CStringArray *
ini.GetKeyNames("Routing Indicator",m_FindKey);
You need to pass a pointer. try
ini.GetKeyNames("Routing Indicator", <font color=#ff0000>&</font>m_FindKey);
"You're obviously a superstar." - Christian Graus about me - 12 Feb '03
"Obviously ??? You're definitely a superstar!!!" mYkel - 21 Jun '04
Within you lies the power for good - Use it!
|
|
|
|