|
In MS Word 97, when I drag any toolbar (such as drawing toolbar) and drop it on the main client window, it becomes a window with small title bar. It makes me surprised that when I click on a button on the toolbar, the cursor on MS Word window still blink and MS Word window is still active. Vice versus, when I type, the toolbar window is still active. I try to create a window like that by the API Fuction CreateWindowEx and set window style as WS_Ex_TOOLWINDOW, and its parent as another window;
However, this window becomes de-active when I click on its parent window. I wish to receive any explaination for this phenomenon. Thank you very much.
|
|
|
|
|
Hi there,
I was wondering if there is anyway to disable a submenu in MFC.
Since you create a submenu by selecting "Popup" option under the menu item
and there are no IDs associated with this Popup menu, I am not sure how you can modify the menu.
thanks
|
|
|
|
|
Are you saying that you want to have a menu with x number of sub menus but grey out the top level menu?
Ralph Krausse
www.consiliumsoft.com
Home of FastRun, the only application launcher that integrates itself into the taskbar!
|
|
|
|
|
Try this code. x represents the number of the menu, zero based.
CMenu* pMenu = AfxGetMainWnd()->GetMenu();
pMenu->EnableMenuItem(x,MF_BYPOSITION|MF_GRAYED);
|
|
|
|
|
The solution was published in Feb'99 issue of MSJ, in "C++ QA" column by Paul DiLascia. You may have this article in your MSDN, if not, it should be avialable online at msdn.microsoft.com.
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
Does anyone know of a shareware/freeware tool that will take my function, file, and class headers and make them into an HTML file? I get hooked on this ability w/ the DotNET beta 2 XML comment stuff, but here at work I'm still using 6.0 and I think we could really benefit from generating docs from our source code comments.
Thanks,
Bill
http://www.ratebeer.com
|
|
|
|
|
|
Looks like exactly what I need, thanks a lot!
Bill
http://www.ratebeer.com
|
|
|
|
|
Hi,
Previously, while running in debug, i was able to edit my code and select "Apply code changes" from the context menu in VC++.
For some reason this ability has stopped and all i seem to get is the option "Apply code Changes" greyed out!
Can explain this?
|
|
|
|
|
Check Project->Settings->C/C++->General->Debug info. It should be set to "Program database for edit and continue".
Tomasz Sowinski -- http://www.shooltz.com
|
|
|
|
|
That option was set, Any other ideas?
|
|
|
|
|
Hello,
I have developed an application in Visual C++.
It is working on my machine but not on other machines. I am missing the DLL: MFC42D.DLL
So probably the Microsoft Foundation Classes
are not available on that machine. A find for that particular file showed it was not available.
On a laptop where I tried the program the DLL was
available but a particular entry not. The DLL version was older that the one on my machine.
My questions are:
Where can I get a full installation pack for all
MFC files that I am using (but didn't know
about it)?
Is it somehow possible not to use MFC for GUI components?
Regards,
J hn
|
|
|
|
|
MFC42D.DLL is the debug version of MFC42.DLL. MFC42.DLL should be on Windows machines. Compile and link your application for release first.
Ralph Krausse
www.consiliumsoft.com
Home of FastRun, the only application launcher that integrates itself into the taskbar!
|
|
|
|
|
Yes you can build a fully featured application without the need of MFC. There are plenty of articles here on using WTL.
You can use Installshield Express that comes with Visual Studio to build a simple install for the dll you are building. The MFC redistributables can be included in that.
|
|
|
|
|
As I see it, you have four choices for making GUI app's.
MFC
WTL
ATL (yes, it's possible)
Plain Win32 API (Personal favorite )
If you have problems with MFC dll's, just use InstallShield to make the installer as Mark suggested, or link MFC static, then your app don't need the dll's...
- Anders
Money talks, but all mine ever says is "Goodbye!"
|
|
|
|
|
Thanks for the reactions. You where a great help for me to finish my project.
Thanks
John
J HN
|
|
|
|
|
The real answer to your question:
1) You have compiled your program in such a way that it needs the MFC DLL file.
2) You have also apparently shipped the *debug* version of your application. The very *first* thing you should do is recompile for the release version, like so:
A) Click "Build", and then "Set Active Configuration..." in the VC6 menu.
B) In the dialog box that pops up, select the configuration that ends with
the words "Win32 Release".
3) You can re-compile your app so that it DOES NOT need MFC42.DLL by changing a compiler setting. Your app will be a little larger as a result, but you won't have to worry about providing the DLL with your app.
A) Click "Project" and then "Settings..." in the VC6 menu.
B) In the dialog box that pops up, you'll see a combo box on the "General"
tab that will probably say something like "Use MFC in a Shared DLL".
Change this to the "Use MFC in a Static Library".
|
|
|
|
|
ive got 2 dialogs:
CTestDlg an CAboutDlg...
i would like to click on a test Dialog button and then change the "aboutdlg" titlebar caption...
i tried this but it didnt works:
void CTestDlg::OnButton1()
{
CAboutDlg AboutDlg;
AboutDlg.DoModal();
AboutDlg.SetWindowText("test!!!!!!");
}
anyone can help?
|
|
|
|
|
You need to do the SetWindowText() in the OnInitDialog() handler in the about class. The way you are doing it, the dialog has already been displayed and dismissed...
BOOL CAboutDlg::OnInitDialog()
{
CDialog::OnInitDialog();
SetWindowText("test!!!!!!");
return TRUE;
}
|
|
|
|
|
I know what you mean but it does not do what i would like because i have 2 windows: one with buttons and another with the title that change depending on the button the mouse is over...
so i cannot put it in OnInit because i would have to init the dialog each time i do a mouseover...
|
|
|
|
|
I am not understand what you want to do...
|
|
|
|
|
Its very simple:
i have two windows (dialog):
one with 3 buttons, for example: "apple", "banana" and "grapes"...
when i click on the "banana" button, the titlebar of the OTHER window changes for "banana"...understand?
|
|
|
|
|
Then you need to make the dialogs modeless. Then you could do what you wanted to do in the first place.
|
|
|
|
|
ok... how do i do that?
|
|
|
|
|
If you still want your dialogs to be modal (ie all input is directed to the About Box), you can add a member variable (and accessors if you want to be purist about it) in the AboutBox class, set that from your other dialog, THEN call DoModal():
class CMyAboutDlg
{
public:
SetTitle(LPCTSTR apszTitle)
{
m_cstrTitle = apszTitle;
}
protected:
CString m_cstrTitle;
}
Then, in your CMyAboutDlg::OnInitDialog:
SetWindowText(m_cstrTitle);
So, when you call your dialog:
CMyAboutDlg vdlgAbout;
if (type == 1)
vdlgAbout.SetTitle("apple");
else if (type == 2)
vdlgAbout.SetTitle("banana");
else
vdlgAbout.SetTitle("grapes");
vdlgAbout.DoModal();
Hope this helps.
------------------------
Derek Waters
derek@lj-oz.com
|
|
|
|