|
I had a look at that article, and to be honest i have little to none knowledge of c++ so I did not understand how i would use that function in context.
==================================================
When Your Mind Wonders...Where Does It Go???
|
|
|
|
|
If you use MFC you can enumerate all files like this:
CFileFind cFind;
CString cstrFileName, cstrTempFile;
cstrFileName = "C:\\*.*";
if (cFind.FindFile(cstrFileName))
{
BOOL bFound = TRUE;
while (bFound)
{
bFound = cFind.FindNextFile();
if (cFind.IsDots())
continue;
else
{
cstrTempFile = cFind.GetFilePath();
}
}
}
cFind.Close();
Look up FindFirstFile for the API equivalent.
Like it or not, I'm right.
|
|
|
|
|
See this article.
/ravi
"There is always one more bug..."
http://www.ravib.com
ravib@ravib.com
|
|
|
|
|
Is there a way to programically disable/enable the close button on a dialog box (I mean the little "X" in the top right corner)? I don't want to over ride the OnClose() function. I want to gray out the "X" or enable the "X".
Any ideas?
|
|
|
|
|
Call GetSystemMenu on your window.
Then you can call DeleteMenu on the close menu item with the SC_CLOSE ID.
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!
|
|
|
|
|
Thanks,
WOrked like a charm.
|
|
|
|
|
Your welcome!
BTW, you may have to remove the separator on the sytem menu as well if that bothers you to have and empty section after the separator.
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,
Is there any way I can intercept GDI calls, i.e. for accessibility or computer-based training apps? I couldn't find any consistent documentation on doing such a thing.
Thanks!
|
|
|
|
|
you can hook those calls, but this is no little task. See for instance Ivo Ivanov's API hooking revealed.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
What do you plan on doing with the API calls once you get them? Because you may be able to do something simpler like replacing the DC that these GDI calls draw on in order to get the image. If you plan on changing the behaviour of the GDI call then you will need to do the API hooking that was mentioned in the other response to you question.
You may want to look at Matt Petriek's book, I believe it is called Windows 95 System Programming Secrets, it contains a sample program that you could probably lift to get the API hooking functionality.
Good Luck.
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!
|
|
|
|
|
1 icon containing 2 sizes: 16x16 and 32x32.
When we use the SetIcon(hIcon) function on a control (for example CButton), it will always use the large icon. How can I force it to use the small one?
I've noticed a function SetIcon(hIcon,bSmall) (or something similar), where bSmall represents the size of the icon as a boolean. This works for the CDialog class, but not for the CButton class
I want to use the standard CButton class rather than any custom class.
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
Have you tried loading the 16x16 icon instead of the 32x32?
Take a look at the ::LoadImage routine. It allows you to specify the size of the resource you want to load. By default, the LoadIcon routine will only load the 32x32 icon image. Or to be more specific, the SM_CXICON x SM_CYICON image.
Tim Smith
I know what you're thinking punk, you're thinking did he spell check this document? Well, to tell you the truth I kinda forgot myself in all this excitement. But being this here's CodeProject, the most powerful forums in the world and would blow your head clean off, you've got to ask yourself one question, Do I feel lucky? Well do ya punk?
|
|
|
|
|
I'm not sure what you're trying to say. I don't see a LoadImage() function, only LoadIcon(), LoadCursor(), LoadOEMIcon(), ...
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
(HICON)LoadImage(hInstance, MAKEINTRESOURCE(IDI_YOURICON), IMAGE_ICON, 16, 16, 0);
Like it or not, I'm right.
|
|
|
|
|
Ok...
Is DestroyIcon() needed at the end? (It isn't if you use LoadIcon)
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
You don’t need to destroy anything as you haven’t created anything. You have only loaded the icon from an embedded resource.
Regards,
Nish
Native CPian.
Born and brought up on CP.
With the CP blood in him.
|
|
|
|
|
And where should I put DestroyIcon(HICON)? If I put it in OnDestroy(), the resources are not freed from memory
[VISUAL STUDIO 6.0] [MFC] [WIN98/2]
Bluute tette!
|
|
|
|
|
This is what I have done that works well for me.. in your OnInitialUpdate() you have the...
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, FALSE);
Change the // set small icon to "TRUE" like this...
SetIcon(m_hIcon, TRUE);
SetIcon(m_hIcon, TRUE);
|
|
|
|
|
Hi all
i've encountered some problem.
1) It gives me some error when i attempt to create a group object from class Group. This is my Constructor:
Group(CString &t1, CString &t2, CString &t3, CString &t4)
and this is how i used it
Group groupA(CString("France"), CString("Uruguay"), CString
("Denmark"),CString("Senegal");
but i got this error unexpected class CString.
I have tried passing LPCTSTR char pointer instead of CString but it
still produces the same error.
Any help is appreciated.
|
|
|
|
|
i've spoted it out and fixed it but the bastard didn't work. This is quite strange.
|
|
|
|
|
this is exactly that the error message looks like. I've tried MSDN but it was hopeless.
unexpected class CString.
|
|
|
|
|
I normally see the 'unexpected ...' error when I have a syntax error in my code. Check the code ahead of the line that's causing the error. Look for a missing (, ), {, }, or other syntax mark. Also check the header files getting included in the source file. Oh yea, make sure your class declaration has a ';' after it.
Good luck...
Jonathan Craig
www.mcw-tech.com
|
|
|
|
|
CString is an MFC class. If your project is not MFC-based, it's no wonder CString is not available.
You might want to consider std::string (available with #include <string> ), which does pretty much the same job as CString , without MFC dependencies.
Joaquín M López Muñoz
Telefónica, Investigación y Desarrollo
|
|
|
|
|
No, it is MFC project so CString should be available.
Regards
|
|
|
|
|
ok... this shouldnt be a hard question to answer, but knowing my luck...
i have a pointer in my header called:
char *M_Name;
The problem accures in this function: I want to Set the name that you enter in, then have that info stored in an array... in this case the array is
char Names[21];// for 20 names.
bool Name::SetName(char* NName)
{
if(!NName)//checking input
{
return false;
}
int NLen = (strlen(NName) + 1);
char *NewName = new char[NLen];
if(!NewName)//checking if allocation faild or not
{
return false;
}
strcpy(NewName, NName);
delete[] M_Name;
M_Name = NewName;
Names[NN] = *M_Name;
NN++;
return true;
}
when it gets to M_Name = NewName, it sets the name you entered into the pointer. Then i wanted to store that same name into the array "stating at 0" so i put in:
Names[NN] = *M_Name; //then i increase NN by one to change the memory slot.
the only problem is... when i try to print this info... i only get the first character of whatever name i insert.
im not to sure on why... i think i need to make each of the data 0-19 have an amount of memory attached to them, is this the right code to insert:
char Names[21][32];?
and if that is the right code to insert, how would i set M_Name to = to 32 bytes of memory without declaring:
char *M_Name[32];
?
Thanks for the help!
~SilverShalkin
|
|
|
|