|
Don't know about "reputable", but a menu bar on a dialog does look confusing to me. Have you ever seen such a thing in any MS product for instance?
|
|
|
|
|
Nemanja Trifunovic wrote: ave you ever seen such a thing in any MS product for instance?
i don't think this is an evidence, because MS wrote (at the begining of Windows95 days) a document for the dos and don'ts in designing Windows GUI, but they don't even respect it now... (especially thinking Office applications and MSN Messenger for instance)
|
|
|
|
|
IMHO, do what needs to be done to improve the usability of an interface. If that involves adding a toolbar, menu bar, or removing a control, so be it.
Let the feedback from your users to decide if it was the right decision or not.
FWIW, I believe that MS Small Business Manager uses menus on its sub-interfaces, and they are basically dialogs with menus.
Peace!
-=- James If you think it costs a lot to do it right, just wait until you find out how much it costs to do it wrong! Avoid driving a vehicle taller than you and remember that Professional Driver on Closed Course does not mean your Dumb Ass on a Public Road! DeleteFXPFiles & CheckFavorites (Please rate this post!)
|
|
|
|
|
He's almost completely wrong.
Dialogs, especially modal dialogs, are to execute one operation. So if you need a menu on the dialog, this may indicate that for this operation, a dialog is not the best choice. However, these rules are not too solid.
Secondary reason: Since Menu background is (usually) identical to dialog background, the menu does not stick out so much, so some users might miss it. It is easier to find if you put it an a "More.." button, that opens the popup menu.
But neither reason is a "don't do", both are just "think twice if you can do better".
Out of curiosdity. can you ask him who he considers to be a "reputable" company?
|
|
|
|
|
peterchen wrote: Out of curiosdity. can you ask him who he considers to be a "reputable" company?
I have not personally talked to him. He is not in my department so I do not see him usually. So, I have no idea what a reputable company would be....
Besides.... we have never claimed to be reputable anyway....
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
|
|
|
|
|
Thanks all for your response. I appreciate the time.
Went pretty much as I expected.
Why is common sense not common?
Never argue with an idiot. They will drag you down to their level where they are an expert.
|
|
|
|
|
I think he has a point. I wouldn't go as far as him, and every rule has its exceptions (like the dialog as a main window case), but not using menus bars on dialogs is a good guideline. What makes applications easy to use is uniformity so unless you've got a compelling reason to deviate from the standards (both explicit and implicit) I'd suggest you don't.
Steve
|
|
|
|
|
I dont know if this is the place to put this, but can anyone tell me how to put devC++ on a flash drive?
|
|
|
|
|
If you're trying to make it so you can take it with you, I don't think it'll work because it puts crap in your system32 folder as well.
"Why don't you tie a kerosene-soaked rag around your ankles so the ants won't climb up and eat your candy ass..." - Dale Earnhardt, 1997 ----- "...the staggering layers of obscenity in your statement make it a work of art on so many levels." - Jason Jystad, 10/26/2001
|
|
|
|
|
Said stuff being debug versions of MFC dlls et al.
I have 'installed' VC6 and Feb04 PSDK on a CD, along with a regfile that I pull in to allow me to use it on my laptop, which had VS2005 already installed on it.
It's not perfect, but it's doable.
Steve S
Developer for hire
|
|
|
|
|
I'm write project under VC++ in .Net framework. I need to write shared.cpp/shared.h to including all global constants which used by other .cpp/.h files in the same project.
i.e.
Once x is defined in this shared file and don't need to be defined in any other .ccp/.h files and can be directly used.
String* x = new String(" NAME ");
|
|
|
|
|
#include < gl\glu.h >
Are we telling the compiler to look in the folder gl in the standard library to find glu.h?
Why is is indicated using a backslash?
#include < netinet/in.h >
Why are we using forward slash in this case?
Thanks,
Jay
|
|
|
|
|
don't use backslashed... use forward slashes to avoid characters escapment problems...
the fact is that one syntax is mostly for windows world, while the other is mostly for unix world. but as forward slashes work fine on every plateforms, i think it's the best way to go.
|
|
|
|
|
what's character escapment
|
|
|
|
|
Jay03 wrote: what's character escapment
Character combinations consisting of a backslash (\) followed by a letter or by a combination of digits are called “escape sequences.” Examples include, but are not limited to:
\b backspace
\f formfeed
\n newline
\r carriage return
\t tab
\\ backslash
"Money talks. When my money starts to talk, I get a bill to shut it up." - Frank
"Judge not by the eye but by the heart." - Native American Proverb
|
|
|
|
|
don't you know that the '\' character in C/C++ is the escapment character ?
\a : alarm
\b : backspace
\n : newline
\t : tab
\r : carriage return
etc...
|
|
|
|
|
im a beginner........ not used to some of the terms yet
forgive me ...... imma a geek wannabee
|
|
|
|
|
Jay03 wrote: im a beginner........
...still on your RTI stuff ?
|
|
|
|
|
|
Hi,
I need to terminate another instance of my application gracefully, like an "End Task"
* When the main window is active, It should work as if I clicked the "Close" Icon, with all "do you want to save.." and stuff.
* When a modal message box is open, the application should not exit, but come to foreground (this works well).
* As bonus, the "End Task" dialog if (and only if) the app is hung for a given time
I do have the main window handle of the other app.
Sending WM_CLOSE kills the app completely, posting WM_QUIT doesn't have any effect.
I could even send a custom message to a background-thread-window in the app to be closed (but would like to avoid that)
-- modified at 10:09 Thursday 27th July, 2006: clarified
|
|
|
|
|
Have you tried sending (or posting) a WM_SYSCOMMAND message with the SC_CLOSE parameter?
Just a guess, may not work
You may be right
I may be crazy
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
Try sending a WM_COMMAND to your main window with the ID of your 'Exit' menu item (or whatever you use to exit normally).
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"
|
|
|
|
|
I have two bitmaps (loaded from resources).
I want to combine thse two bitmaps side-by-side into a 3rd bitmap.
I want to put the 3rd (combined) bitmap into an image list.
The snippet below shows the two functions associated with the image list. The InitImageList() function works fine - each row in the grid shows a white bitmap image in the appropriate column. However, the BuildImageList function doesn't appear to work as intended. Essentially here's the process I'm using:
- Load all bitmaps
- Create two DC - a sourceDC and a targetDC
- select the target bitmap into the target DC,
- select the first source bitmap into the source dc
- BitBlt the source dc onto the target dc
- select the second source bitmap into the source dc
- BitBlt the source dc onto the target dc
- retrieve the bitmap from the target dc
- replace the first imagelist image with the new bitmap
For the raster operation, I've tried both SRCCOPY and SRCPAINT.
What am I doing wrong?
void CMyGridCtrl::InitImageList()
{
if (m_ResultsImages.Create(34, 21, ILC_COLOR4, 0, 1))
{
CBitmap bmp;
CBitmap* pBmpMask = NULL;
bmp.LoadBitmap(IDB_RESULTS_BOTH_CLEAR);
m_ResultsImages.Add(&bmp, pBmpMask);
SetImageList(&m_ResultsImages);
}
}
void CMyGridCtrl::BuildImageList(int nConsultID, int nLabsID)
{
UINT nImgConsult = 0;
UINT nImgLabs = 0;
switch(nConsultID)
{
case 1 :
nImgConsult = IDB_CONSULT_ORDERED;
break;
case 3 :
nImgConsult = IDB_CONSULT_RETURNED;
break;
default :
nImgConsult = IDB_NORESULTS;
break;
}
switch(nLabsID)
{
case 2 :
nImgLabs = IDB_LABS_ORDERED;
break;
case 4 :
nImgLabs = IDB_LABS_RETURNED;
break;
default :
nImgLabs = IDB_NORESULTS;
break;
}
int nTargetWidth = 34;
int nTargetHeight = 21;
int nSrcWidth = 17;
int nSrcHeight = 21;
CBitmap bmpConsult;
CBitmap bmpLabs;
CBitmap bmpTarget;
bmpConsult.LoadBitmap(nImgConsult);
bmpLabs.LoadBitmap(nImgLabs);
bmpTarget.LoadBitmap(IDB_RESULTS_BOTH_CLEAR);
COLORREF crBackground = RGB(0,0,0);
CBitmap* pOldTargetBmp = NULL;
CBitmap* pOldSourceBmp = NULL;
CBitmap* pNewTargetBmp = NULL;
CDC targetDC;
CDC sourceDC;
targetDC.CreateCompatibleDC(this->GetDC());
sourceDC.CreateCompatibleDC(this->GetDC());
pOldTargetBmp = targetDC.SelectObject(&bmpTarget);
pOldSourceBmp = sourceDC.SelectObject(&bmpConsult);
targetDC.BitBlt(0, 0, nTargetWidth, nTargetHeight, &sourceDC, 0, 0, SRCPAINT);
pOldSourceBmp = sourceDC.SelectObject(&bmpLabs);
targetDC.BitBlt(nSrcWidth, 0, nTargetWidth, nTargetHeight, &sourceDC, 0, 0, SRCPAINT);
pNewTargetBmp = targetDC.SelectObject(pOldTargetBmp);
m_ResultsImages.Replace(0, pNewTargetBmp, NULL);
}
I also tried doing this:
targetDC.BitBlt(nSrcWidth, 0, nTargetWidth, nTargetHeight, &sourceDC, 0, 0, SRCPAINT);
pNewTargetBmp = targetDC.SelectObject(pOldTargetBmp);
CBitmap newBmp;
BYTE bmpBits[4096];
memset(&bmpBits, 0, sizeof(bmpBits));
DWORD nSize = pNewTargetBmp->GetBitmapBits(sizeof(bmpBits), &bmpBits);
newBmp.CreateBitmap(nTargetWidth, nTargetHeight, 1, nSize, (void*)bmpBits);
m_ResultsImages.Replace(0, pNewTargetBmp, NULL);
One last note - Whoever is voting my messages a "1" is acting real f***in' mature. Act like a f***in' grownup or leave.
-- modified at 13:06 Thursday 27th July, 2006
|
|
|
|
|
I wrote a tool a while back that I use to see exactly what every step in my code is doing when working with bitmaps. Check it out, maybe it will help you spot the problem.
http://www.codeproject.com/tools/imageviewer.asp[^]
You may be right
I may be crazy
-- Billy Joel --
Within you lies the power for good - Use it!
|
|
|
|
|
I put all the components where instructed, and it doesn't seem to do anything. Does it matter that I'm using VS2005?
Nevermind - stupid programmer tricks.
-- modified at 12:41 Thursday 27th July, 2006
|
|
|
|