|
|
not is system tray, I want to make it minimize in taskbar.
|
|
|
|
|
john5632 wrote: i tried like ShowWindow(WS_MINIMIZE); but not working.
It should be ShowWindow(SW_MINIMIZE); - WS_ values are windows styles, SW_ values are ShowWindow() command parameters.
It's time for a new signature.
|
|
|
|
|
I would apply just the following to the words of Richard:
there are two - known for me - reasons for "a dialog" to be minimized:
- the dialog is modeless (could be a child of the desktop )
- the dialog is the application window (the style WS_EX_APPWINDOW could be applied in OnInitDialog() )
An emulation of the second reason:
int CYourDialog::OnInitDialog()
{
int iResult = CDialog::OnInitDialog();
LONG lStyle = GetWindowLong(GetSafeHwnd(), GWL_EXSTYLE) | WS_EX_APPWINDOW;
SetWindowLong(GetSafeHwnd(), GWL_EXSTYLE, lStyle);
return iResult;
}
virtual void BeHappy() = 0;
modified on Monday, August 16, 2010 3:48 AM
|
|
|
|
|
Eugen Podsypalnikov wrote: there are two - known for me - reasons for "a dialog" to be minimized
Thanks, I couldn't think of one; but, hey, the customer wants it, the customer can have it.
It's time for a new signature.
|
|
|
|
|
I've a structure like this:
struct STRUCT<br />
{<br />
bool b;<br />
int i;<br />
double d;<br />
}str;<br />
str.b = true;<br />
str.i = 18;<br />
str.d = 20<br />
and because I know I can't get the real size of a structure using operator sizeof, I write it into a file in this way:
wofstream of("FileName.dat", ios:out
of.write(reinterprete_cast <char*> (&str.b), sizeof(bool));
of.write(reinterprete_cast <char*> (&str.i), sizeof(int));
of.write(reinterprete_cast <char*> (&str.d), sizeof(double));
and finally when I read it again into "str" and display it using cout, I got this values:
str.b = true;
str.i = 18;
str.d = 20.001
why 20.001 instead of 20 is written? I took a look into the file using a HEX-Editor and I saw 20.001!!!
|
|
|
|
|
|
Thank you! but one expects to get whatever he's saved on a file as the original value. I'll read that article for sure. but for now could you explain what should I do to save and retrive a "double" value. a short exam will be appreciated.
|
|
|
|
|
that article explains why you are seeing that value - what you are seeing is 20 +/- epsilon, written out with the precision you specified (or rather in this case, didnt specify)
you need to look at using <iomanip> and the precision specifier at least
so google iomanip and precision
'g'
|
|
|
|
|
thank you! It was really helpful
|
|
|
|
|
Firstly - of course you can get the size of a structure using sizeof - that's what it's there for. It's only when you make some crass assumptions about what sizeof does that you get into trouble.
Secondly are you sure the code you've presented to us, HTML foobars aside, is the code you've been using? The reason I ask is that a standard conforming compiler won't accept the line:
of.write(reinterpret_cast <char*> (&str.b), sizeof(bool));
as the first parameter to std::basic_stream<char_type>::write is char_type * or wchar_t * for a wofstream . So the first thing I'd do is grab a standard comforming C++ compiler and give your code another go.
Cheers,
Ash
|
|
|
|
|
that code was what I got in real!
by the way, did you mean I can rely on "sizeof" to write/read a whole structure into a file aborting that "padding" stuff? like when I don't know how it works under the hood
|
|
|
|
|
Well if that code was what you got "in real" then perhaps you're using a cranky old C++ compiler. If you read from or write to a wofstream then the first parameter is a wchar_t pointer - this is standard and completely non-negotiable. I've checked that one line on 9 compilers (one being Comeau which is the best you're ever going to get for C++98/03 standard compliance - I know, my life is so meaningless) and none of them compiled the code. They all gave me a warning that the code was incorrect.
And I meant exactly what I said - when you ask a particular compiler what the size of a structure is it'll always give the same answer with the same build settings.
|
|
|
|
|
congratulations! You're life's so meaningful cause I'd behaved so stupid!!! I was wrong and my compiler had emitted a warning too.
and one more thing! thnx 4 introducing that modern compilet.
|
|
|
|
|
Joseph Marzbany wrote: I can't get the real size of a structure using operator sizeof
If that were the case then lots of programs would not work. If you write the structure using sizeof and read it back in the same way then you will restore the exact same structure every time. Only if you use different padding options in your code would you have a problem.
It's time for a new signature.
|
|
|
|
|
you're right (and I'm left
but I meant "the sum of all memberss' size" when I said "the size of a structure". by the way do u know how I can make the compiler ignore that PADDING stuff? I mean a STANDARD way not an implementation-specific one.
thnx
modified on Wednesday, August 18, 2010 11:24 PM
|
|
|
|
|
Joseph Marzbany wrote: but I meant "the sum of all memberss' size" when I said "the size of a structure".
Sure, but why worry about a few extra bytes, which will not have any significant effect on either your program or your files? If you want to pack your structure tightly then use the #pragma pack()[^] compiler directive.
It's time for a new signature.
|
|
|
|
|
thank you for your attention!
1. is that a STANDARD method or Implementation-Specific? (Yes I know I've already asked it. Just for sure)
2. What's that padding stfuff useful for? Why do compilers take such a strategy?
|
|
|
|
|
1. I think the compiler writers are allowed to decide what their default option will be.
2. Padding of short items allows the compiler to take advantage of processor hardware. In some cases the system is more efficient if words, double words etc are aligned on even boundaries.
It's time for a new signature.
|
|
|
|
|
I create a item as CMFCToolBarComboBoxButton and add it to CMFCToolBar. Now, I can handle the message such as CBN_SELCHANGE. But how to handle the edit message of CMFCToolBarComboBoxButton.
I tried with EN_CHANGE and CBN_EDITCHANGE, but the breakpoint in these handler did not work.
Please tell me how I should do?
Thanks!
|
|
|
|
|
Hi,
How to check whether the dll can be loaded in c++?
Thanks,
|
|
|
|
|
|
Yeah,I have loaded the dll and its returning 0x11000000 value in HINSTANCE But while getting the address of that function,its returning value 0x00000000. Whats the reason? If we open a dll in notepad, it should contain the function names right? but this is dll is not showing any fn names in notepad. Please tell me why GetProcAdress is returning NULL value?
Thanks,
|
|
|
|
|
Maybe a function name mangling issue. Why don't you use the Dependecy Walker tool [^] to see function names?
If the Lord God Almighty had consulted me before embarking upon the Creation, I would have recommended something simpler.
-- Alfonso the Wise, 13th Century King of Castile.
This is going on my arrogant assumptions. You may have a superb reason why I'm completely wrong.
-- Iain Clarke
[My articles]
|
|
|
|
|
Yes.I have used Dependency walker. But its showing only 4 functions DllCanUnLoadNow,DllGetClassObject,DllRegisterServer,DllUnregisterServer.
But I can use the functions in .net. In c++ only, its not working.
|
|
|
|