|
1) "Just stopped to ponder..."
No I do not think micosoft missed a critical point. Remeber that icons and bitmaps basicaly did not exist when the first version of Windows was created. Both Microsoft and Apple (and who ever) had to creat the specifications before they (existed) could be used.
Now they could have changed the format for the dialog template class to include icon/bitmap for the buttons (for all I know they did).
2) "And is there a method to size the button to it's contents "
I have notice that some controls do adjust them selfs to it's contents (this may be an MFC thing).
I recommend that you look at "The Win32 Foundation Classes" by Sam Blackburn here at code project. I know there are other articles out there on this subject (maybe at programmerhaven.com).
INTP
|
|
|
|
|
Thank you for your answer.
However, I think you've misunderstood me here. As far as I know, Windows 95 did support bitmapped/iconed buttons already, at least the requirement for the SetIcon method of CButton requires Windows 95 or later. I somehow find it an impossible idea that someone would still develop software for Windows 3.11 or earlier.
When you edit a button's properties, there is a possibility to specify the flag BS_ICON or BS_BITMAP for it. But there lacks a field to specify the resource used for this button. I ended up into a solution to create one icon control, and specify the sizes of the buttons according to that. Then I used the SetIcon method to load & specify the icon resource for the button during the creation of the dialog.
-Antti Keskinen
----------------------------------------------
The definition of impossible is strictly dependant
on what we think is possible.
|
|
|
|
|
"impossible idea that someone would still develop software for Windows 3.11 or earlier"
Not develop, but maintain/add functionality. It was not until this last year that they finaly allowed me convert it to Win32 (95 or later).
I've been writting software since before windows existed.
As for button properties, may be it was just there way of resource code changes. After all adding a couple of new bit flags is simple and should not break any of the existing programs. Microsofts development teams do seem to have good reasons for most of the things they do, it is just hard to figure out (at times) what those reasons where. A lot of what they did was neccesary to avoid breaking old code and make it easier to convert old 16 bit Windows code to 32 bit Windows code. You'll notice that there are many references like "This is included to support... When developing for Win32 you should funcX".
INTP
|
|
|
|
|
Hi I subclassed Cimage and put a handler in it for mouse clicks.
Best Wishes,
ez_way
|
|
|
|
|
I have some timers set in an SDI app. At the moment, I have to click a button to kill the timers before I close the app.
Does the framework kill the timers if I click on the x in the upper corner to close? Or do I need to kill the timers before I close it?
If I have to kill them, what message do I need to catch? WM_CLOSE?
Its view is CFormView.
Thanks!
|
|
|
|
|
Use KillTimer(m_nTimerID);
Peter Molnar
|
|
|
|
|
Thanks for the reply, but that wasnt my question.
|
|
|
|
|
SetTimer is CWnd's member function, happens nothing extraordinary (i.e. no memory leak or anything bad) if you don't kill it separately. The framework does this for you when the CWnd object gets destroyed from which you called it regardless whether you called it from your view or framewnd or whatever place.
As for handling WM_CLOSE in your mainframe, this is a good place for things to clean up that require clean up.
Peter Molnar
|
|
|
|
|
Thanks! Thats what I needed!
|
|
|
|
|
I notice that Peter Molnar gave you the answer, but I consider it a good practice to kill the timers youself instead of depending on the frame work to do it. One of the reasons for this is that you have control and can close it when it is know longer needed, instead of letting it run after its' job is done. The second reason is that unless it is need to run during the life time of the object, it should be killed because it is still generating timer messages and wasting processor time.
INTP
|
|
|
|
|
how can i get the content of password edit box ( this edit box is located in other program) .
thanks !
|
|
|
|
|
there are many programs out there!
Don't try it, just do it!
|
|
|
|
|
You should send this particular password style edit box a WM_GETTEXT message.
The problem is that if the sender is an external app and the control a password box then you will not get any useful info.
Solution: force (!) the external app calling SendMessage itself.
Look up CreateRemoteThread
Peter Molnar
|
|
|
|
|
This sounds too much like a hacker attempting to steal passwords.
If this isn't the case, could you elaborate?
|
|
|
|
|
Ya, it does! But the information is already on the net and even though I did not care how it was done, I was happy to find a program that allowed me to point to my password entry field in order to find out what password I had used. So I could write it down and use it from work as well as home.
The fact that it is possible does worry me a little, since I now know that (given my posision in the company) I can get any password that anybody told thier computer to remember. If I wanted to I could probubably access it from the machine setting on my desk.
INTP
|
|
|
|
|
How can i make programs (in vc++) which cannot be seen in start bar? only in windows task menager! suppose i want my regular program to minimize into task bar (like GetRight) and not to be seen normaly! Thanks
|
|
|
|
|
if you are using win32 sdk
hide your main window by
ShowWindow(hWnd,SW_HIDE);
or if you are using MFC type
HideApplication(); in initinstance.
The World is getting smaller and so are the people.
|
|
|
|
|
OK download Chris Maunder's http://www.codeproject.com/shell/systemtray.asp?target=tray
You then can hide the ICON in the tray.
Best Wishes,
ez_way
|
|
|
|
|
How do i get the system path? I know there is a function GetSystemPath() but i cant find a description for it on MSDN. And it has two parameters: a pointer to a string and a DWORD and it returns a pointer to a string so i don't know how to use it..
Kuniva
--------------------------------------------
|
|
|
|
|
Check out SHGetSpecialFolderPath
The World is getting smaller and so are the people.
|
|
|
|
|
|
Yes Mike is right
Try This
char ch[MAX_PATH];
GetSystemDirectory(ch,sizeof(ch));
AfxMessageBox(ch);
Best Wishes,
ez_way
|
|
|
|
|
I've a dialog based application with a menu resource, when I've built the menu items I've used some shortcuts (eg. for the file menu I've used the "&File" caption). I'm working on XP so I know that the F doesn't appear while Alt key si pressed but when I press the Alt+F keys the menù doesn't appear at all.
What's wrong?
Gaetano Sferra
|
|
|
|
|
What does your accelerator table look like. I have the same problem on xp h.
OK I just tried to compile an app on 2000p and got the same results, no underscore.
This seems to be a problem I have not noticed.
Try this
CString s_buttontest = " &Open >>";
SetDlgItemText (IDC_BUTTON_1, s_buttontest);
Good catch!
Best Wishes,
ez_way
|
|
|
|
|
Well... my problem aren't underlines... but...
The new look & feel of XP doesn't show underlines while pressing Alt key, this is "normal"... Have you installed the lastest version of IE on Win2K? If the reply is "YES" you've installed the new look & feel also ... take a look on IE or Outlook Express if you don't belive me
The problem of mine is that pressing Alt+[key] NOT unroll the menu at all
Best wishes to you
Gaetano Sferra
|
|
|
|